【发布时间】:2020-03-30 19:22:45
【问题描述】:
我正在创建一个程序来更新一个包含城市列表的文本文件:
New York City
New York
USA
Newark
New Jersey
USA
Toronto
Ontario
Canada
如果我想使用 bash 脚本删除 Newark 的详细信息,我可以这样做:
sed -i "/Newark/,+3d" test.txt
这将给我留下以下内容:
New York City
New York
USA
Toronto
Ontario
Canada
但是,我想在 Python 中执行此操作,但在弄清楚如何在 Newark 行之后删除以下行时遇到问题。我可以删除纽瓦克:
with open('test.txt') as oldfile, open('test2.txt', 'w') as newfile:
for line in oldfile:
if not "Newark" in line:
newfile.write(line)
os.remove('test.txt')
os.rename('test2.txt', 'test.txt')
但这对剩下的两行没有任何作用,而是创建了一个新文件,然后我必须用它来替换原始文件。
- 如何使用 Python 模拟 sed 命令的功能?
- 有什么方法可以进行文件内编辑,这样我就不必在每次需要从中删除文件时创建和替换文件?
【问题讨论】:
标签: python sed text-files edit