将具有多个 quotes/special 个字符的多行(来自另一个文件)回显到一个新文件中?
echo multiple lines (from another file) with multiple quotes/special characters into a new file?
我有一个 python 脚本可以打开文件并读取它:
f= open("/file.dat", "r").read()
file.dat
是一个包含引号、空格、换行符和特殊字符的多行文件,例如 #,&,"
我想将 f
回显到一个名为 t.dat
的新文件中。我试过:
cd= "echo \"{}\" >> t.dat".format(f)
os.system(cd)
它将文件内容打印到屏幕上,直到其中的“& config”和错误:
sh: 32: 配置: 未找到
也尝试了以下方法,结果相似:
cd= "$echo \"{}\" >> t.dat".format(f)
cd= "$echo {} >> t.dat".format(f)
执行此操作的正确方法是什么?
谢谢!
import shlex
cd = r"printf '%s\n' {} >> t.dat".format(shlex.quote(f.read()))
我有一个 python 脚本可以打开文件并读取它:
f= open("/file.dat", "r").read()
file.dat
是一个包含引号、空格、换行符和特殊字符的多行文件,例如 #,&,"
我想将 f
回显到一个名为 t.dat
的新文件中。我试过:
cd= "echo \"{}\" >> t.dat".format(f)
os.system(cd)
它将文件内容打印到屏幕上,直到其中的“& config”和错误: sh: 32: 配置: 未找到
也尝试了以下方法,结果相似:
cd= "$echo \"{}\" >> t.dat".format(f)
cd= "$echo {} >> t.dat".format(f)
执行此操作的正确方法是什么? 谢谢!
import shlex
cd = r"printf '%s\n' {} >> t.dat".format(shlex.quote(f.read()))