繁体   English   中英

将转义字符添加到python字符串

[英]Adding escape characters to python string

我有一个要传递给程序或bash脚本的文件名。 例如,如果它是my car's picture.jpg ,则必须将其更改为my\\ car\\'s picture.jpg ,才能像show my\\ car\\'s picture.jpg一样传递给os.system。 是否具有自动执行反斜杠的功能?

您应该使用subprocess模块从Python调用Shell脚本。 然后,您不必担心自己逃脱。

import subprocess
subprocess.call(['script_name', "my car's picture.jpg"])

subprocess.call()将为您正确地转义所有内容。 如果需要读取Shell脚本的输出,请改用subprocess.check_output()

你可以简单地按原样传递和使用的子进程os.system折旧。

c = check_output(["file","/home/padraic/Pictures/my cars' picture.png"])
print(c)
b"/home/padraic/Pictures/my cars' picture.png: PNG image data, 1366 x 768, 8-bit/color RGB, non-interlaced\n"

要调用脚本中使用check_call ,如果你想管就可以使用Popen ,有很多例子在上面,包括链接的文档替换-OS系统

我可以提供一些对您有帮助的不完整建议。

使用"my car's picture.jpg" -双引号转义单引号

在UNIX文件系统中使用空格只会产生麻烦。 您可以在双引号内传递文件名。

os.system('cp "my car\'s picture" myCarPicture.jpg')

如果在Windows系统中使用带反斜杠的文件名,请使用原始字符串

r"C:\\Foo\\bah\\baz.jpg"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM