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

时间:2015-03-27 20:01:35

标签: python

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

3 个答案:

答案 0 :(得分:2)

您应该使用subprocess模块从Python调用shell脚本。然后你不必担心自己逃避的事情。

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

subprocess.call()会为您正确地逃避一切。如果您需要阅读shell脚本的输出,请改用subprocess.check_output()

答案 1 :(得分:2)

您可以按原样传递并使用subprocessos.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,上面链接的文档中有很多示例,包括replacing-os-system

答案 2 :(得分:0)

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

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

在UNIX文件系统中使用空格只会产生令人头疼的问题。您可以在双引号内传递文件名。

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

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

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