向python字符串添加转义字符



我有一个文件名,要传递给程序或bash脚本。例如,如果它是my car's picture.jpg,我必须将它更改为my car's picture.jpg才能将它传递给像show my car's picture.jpg这样的操作系统。有没有一个函数可以自动反斜杠?

您应该使用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-interlacedn"

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

我可以提供几个不完整的建议,这些建议可能对您有所帮助。

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

在UNIX文件系统中使用空格只会让人头疼。您可以在双引号内传递文件名。

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

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

r"C:Foobahbaz.jpg"

最新更新