如何将任何字符串转换为在python中执行时生成该字符串的print语句

Hen*_* B. 0 python

因此,基本上我要做的是从磁盘读取一些文本并创建一系列打印语句,这些语句在执行时将重现读入的文本.

例如在我的文件中包含一行如:

我说,"这是美好的一天."

然后我的程序应该生成以下python代码作为输出:

print "I said, \"It\'s a nice day.\n\""
Run Code Online (Sandbox Code Playgroud)

请注意,我并不是说它应该执行上面的代码.它应该只生成上面的字符串.

我想出了以下代码,适用于某些情况:

import sys
import re

filename = sys.argv[1]

infile = open(filename)

for line in infile:
    line = line.strip()
    line = line.encode('string-escape')
    sys.stdout.write("print \""+line+"\"\n")
Run Code Online (Sandbox Code Playgroud)

这似乎适用于某些行,但不适用于其他行.当我自己运行此代码时,它不适用于双引号.例如,它们没有被正确转义.任何意见,将不胜感激.

use*_*342 7

使用repr得到适当的引用:

with open(filename) as r:
    for line in r:
        line = line.strip()
        sys.stdout.write('print %s\n' % repr(line))
Run Code Online (Sandbox Code Playgroud)