【发布时间】:2018-01-18 01:44:16
【问题描述】:
我正在尝试快速替换以多行字符串“NATOMS”开头的文件(标题为文件名)中的整行。我正在尝试使用 os.system 执行此操作,但没有任何反应。如果我将此字符串复制到命令行中,它就可以工作。代码如下:
import os
os.system("sed -i -e '/NATOMS/c\NATOMS 5 -1.10\n hi\nbye' filename")
我收到的错误(Python 2.7)是:
sed: -e expression #1, char 34: extra characters after command
我想在文件名中替换这一整行(数字从文件到文件):
NATOMS 6 -1.10
与
NATOMS 5 -1.10
hi
bye
感谢任何建议!
【问题讨论】:
-
如果你打算使用
python为什么不直接使用re模块? -
您正在使用 Python。不是sed。使用 Python (re) 完成您的任务:它会更优雅,更便携(而且可能更快)。
-
如果您对
re感到不舒服或无法理解,只需打开python中的文件并逐行阅读即可。 -
您说“我正在尝试使用 os.system 执行此操作”。为什么,确切地说,您要尝试使用
os.system来做到这一点?你会对纯 python 的答案感到满意吗?