【发布时间】:2019-10-21 09:04:47
【问题描述】:
所以,我有多行的文本文件:
orange
melon
applez
more fruits
abcdefg
我有一个要检查的字符串列表:
names = ["apple", "banana"]
现在我想检查文件中的所有行,如果不存在的话,我想从名称列表中插入缺失的字符串。如果它们存在,则不应插入它们。
一般来说,这应该不难,但要处理所有的换行符,这是相当挑剔的。这是我的尝试:
if not os.path.isfile(fpath):
raise FileNotFoundError('Could not load username file', fpath)
with open(fpath, 'r+') as f:
lines = [line.rstrip('\n') for line in f]
if not "banana" in lines:
lines.insert(0, 'banana')
if not "apple" in lines:
lines.insert(0, 'apple')
f.writelines(lines)
print("done")
问题是,我的值不是插入新行而是附加的。 我也觉得我的解决方案通常有点笨拙。有没有更好的方法来自动插入丢失的字符串并处理所有换行符等?
【问题讨论】:
-
你能发布你的错误吗?还要检查这个stackoverflow.com/questions/13248020/…(打开文件“r+”与“a+”)