【发布时间】:2016-06-02 00:55:18
【问题描述】:
这是我的文件的数据:
- 约翰·史密斯,5 岁
- 卢克·史密斯,7 岁
- 玛丽·史密斯,8 岁
- 鲍比·史密斯,2 岁
我希望能够将另一个号码添加到文件中的特定用户。见下文(玛丽)。
- 约翰·史密斯,5 岁
- 卢克·史密斯,7 岁
- 玛丽·史密斯,8 岁、6 岁
- 鲍比·史密斯,2 岁
我的代码:
with open('filename.txt','a') as file:
file.write("\n{}, {}".format(name,number))
这段代码可以很好地追加/写入文件,但它每次都会写入新用户,我不希望它这样做。我希望它检查用户是否已经在文件中,并在该行附加新号码。如果用户不存在,请将其添加到文件中。
【问题讨论】:
-
您不能只将内容插入文件中。做你想做的最安全的方法是将整个文件读入内存,进行修改,然后将修改后的版本写回磁盘。如果文件巨大,您可以避免重新编写整个文件,而只需从更改开始的位置开始编写,但这有点复杂。
-
嘿,感谢您对此的建议。你能指出我在正确的地方/给我看一个例子,所以我可以再试一次吗?谢谢。
-
PS,这是一个小文件
-
@Potter 最好使用 .csv 文件而不是 .txt。
-
@R. Murray,谢谢。我确实尝试过使用 .csv 进行操作,但网络上并没有太多内容。我确实设法写入了 csv,但遇到了同一个块 - 无法附加现有行,只能让它插入新行。