我正在尝试使用Python(通过Linux终端)替换文本文件text_file.txt
的以下行中的“example”一词:
abcdefgh example uvwxyz
我想要的是:
abcdefgh replaced_example uvwxyz
我可以在Python中使用单行代码吗?
修改
我有一个perl单行perl -p -i -e 's#example#replaced_example#' text_file.txt
,但我也想用Python做这个
答案 0 :(得分:9)
你可以这样做:
python -c 'print open("text_file.txt").read().replace("example","replaced_example")'
但它相当笨重。 Python的语法并不是为了制作漂亮的1-liners而设计的(虽然经常以这种方式运行)。 Python重视其他所有内容的清晰度,这是您需要导入内容以获得python必须提供的真正强大工具的一个原因。因为你需要导入东西以真正利用python的强大功能,所以它不会从命令行创建简单的脚本。
我宁愿使用专为此类设计的工具 - 例如sed
:
sed -e 's/example/replace_example/g' text_file.txt
答案 1 :(得分:0)
顺便提一下,fileinput模块支持就地修改,就像sed -i
一样-bash-3.2$ python -c '
import fileinput
for line in fileinput.input("text_file.txt", inplace=True):
print line.replace("example","replace_example"),
'