2

我正在尝试使用 Python(通过 Linux 终端)替换文本文件以下行中的“示例”一词text_file.txt

abcdefgh example uvwxyz

我想要的是:

abcdefgh replaced_example uvwxyz

我可以用 Python 中的单线来做到这一点吗?

编辑: 我有一个 perl 单行perl -p -i -e 's#example#replaced_example#' text_file.txt,但我也想用 Python 来做

4

2 回答 2

11

你能行的:

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
于 2012-10-17T18:57:16.400 回答
2

顺便说一下,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"),
'
于 2012-10-17T19:12:48.053 回答