python - python中的a+命令读取但不附加
问题描述
例如,当我运行以下代码时,我有一个包含 4 行语句“this is shirin”的文本文件,我的文件没有任何反应:
file = open('test.txt', 'a+')
for i in file:
if len(i) == 0 or 'this' in i:
file.write('test')
file.close()
解决方案
当您以追加模式打开文件时,初始位置在末尾,因此没有什么可读取的,循环立即结束。您需要倒退到文件的开头来阅读。而如果你想继续阅读,你需要在写完之后再次寻找。
with open('test.txt', 'a+') as file:
file.seek(0)
while True:
i = file.readline()
if not i:
break
oldpos = file.tell()
if 'this' in i:
file.write('test')
file.seek(oldpos)
推荐阅读
- context-free-grammar - Rascal 中有没有办法从其相应的数据类型生成语法的语法定义?
- python - 有自定义刻度时将条形值添加到子条形图中
- node.js - NodeJS 用户授权获取特定数据
- sql - 使用连接从 2 个表中选择 2 列
- android - 引用我的代码中的一行时没有错误地崩溃
- javascript - 当它们可能为空时,将 GraphQL 值与 React 一起使用
- python - 我想在这些元组中创建标签
- java - NiFi:发送流文件@OnflowFile
- laravel - 迁移不更新数据库
- python - 如何在基于数组的列表中实现 remove() 方法?