读取文件有时返回空字符串

时间:2018-12-21 19:46:59

标签: python file

我有以下代码:

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。我需要从字符串中删除结尾的新行。发生什么事了?

2 个答案:

答案 0 :(得分:0)

我很难重现您遇到的错误。但是,如果您要做的只是将文件放入列表,其中每一行都是一个单独的条目,则可以使用f.read().splitlines()并可以删除列表理解。这将删除“ \ n”。

答案 1 :(得分:0)

我发现了问题。后来我再次打开该文件进行写入,并随后将其关闭。相同的代码以某种方式运行两次使它混乱。感谢您对其他人的所有帮助。