我有以下代码:
my_dir = os.path.dirname(__file__)
excludes_file_path = os.path.join(my_dir, 'excludes.txt')
with open(excludes_file_path, 'r') as f:
print('start pos', f.tell())
excludeLines = [line.rstrip('\n') for line in f]
print('excludes', excludeLines)
当我运行这段代码时,会得到以下交替显示:
start pos: 0
excludes: ['string', 'string']
start pos: 0
excludes: []
我已经读过有关文件的内容,有时是在以前读取文件的时候。我试图通过在文件打开时使用'r'选项来防止这种情况。而且起始位置pos始终为0。我也尝试过进行f.seek(0)
。但是它仍然会交替出现。我始终获得第一个结果的唯一方法是删除rstrip。我需要从字符串中删除结尾的新行。发生什么事了?
答案 0 :(得分:0)
我很难重现您遇到的错误。但是,如果您要做的只是将文件放入列表,其中每一行都是一个单独的条目,则可以使用f.read().splitlines()
并可以删除列表理解。这将删除“ \ n”。
答案 1 :(得分:0)
我发现了问题。后来我再次打开该文件进行写入,并随后将其关闭。相同的代码以某种方式运行两次使它混乱。感谢您对其他人的所有帮助。