python - 将带有多个引号/特殊字符的多行(来自另一个文件)回显到一个新文件中?
问题描述
我有一个 python 脚本,它打开一个文件并读取它:
f= open("/file.dat", "r").read()
file.dat
是一个多行文件,包含引号、空格、换行符和特殊字符,例如#,&,"
我想回显f
到一个名为t.dat
. 我努力了:
cd= "echo \"{}\" >> t.dat".format(f)
os.system(cd)
它将文件内容打印到屏幕上,直到其中的“& config”和错误: sh:32:Config:未找到
也尝试了以下方法,结果相似:
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()))
推荐阅读
- javascript - 如何将 jQuery 函数(监视 css 类)转换为 Vue 3 中的可用代码?
- swift - SwiftUI 视图转换匹配分段选择器
- python - 打印熊猫数据框时如何在行之间添加下划线分隔符?
- reactjs - 如何渲染属性位于嵌套对象数组中的元素数组?
- vuejs2 - 启动服务器后,我在 vuejs 中遇到以下问题
- spring-boot - 如何传递lookuptype!在 java 中使用 GraphQLTemplate 时枚举
- firebase - 直接来自 Firebase 存储的 Steam 音频文件
- c# - 在 C# 中从类中打印一个数组
- html - 说明框未正确呈现
- visual-studio-2019 - 升级到 Visual Studio 16.8.5 浏览器后不显示对网页的更改