import os
path= os.getcwd()
final= path +'\xulrunner.exe ' + path + '\application.ini'
print final
我想要输出:
c:\python25\xulrunner.exe c:\python25\application.ini
我不希望反斜杠作为字符串工作,我的意思是不希望它转义或做任何特别的事情。但我得到一个错误
无效的 \x 转义
我如何使用 '\' 作为 '\' 而不是转义?
要直接回答您的问题,请放在r
字符串前面。
final= path + r'\xulrunner.exe ' + path + r'\application.ini'
但更好的解决方案是os.path.join
:
final = os.path.join(path, 'xulrunner.exe') + ' ' + \
os.path.join(path, 'application.ini')
(那里的反斜杠转义了一个换行符,但如果你愿意,你可以把整个东西放在一行上)
我会提到您可以在文件路径中使用正斜杠,Python 会根据需要自动将它们转换为正确的分隔符(Windows 上的反斜杠)。所以
final = path + '/xulrunner.exe ' + path + '/application.ini'
应该管用。但它仍然更可取,os.path.join
因为这样可以清楚地说明您要做什么。
你可以逃脱斜线。使用\\
,你只会得到一个斜线。
另一种简单(并且可以说更具可读性)的方法是使用字符串原始格式和替换,如下所示:
import os
path = os.getcwd()
final = r"{0}\xulrunner.exe {0}\application.ini".format(path)
print(final)
或使用 os path 方法(以及可读性的微函数):
import os
def add_cwd(path):
return os.path.join( os.getcwd(), path )
xulrunner = add_cwd("xulrunner.exe")
inifile = add_cwd("application.ini")
# in production you would use xulrunner+" "+inifile
# but the purpose of this example is to show a version where you could use any character
# including backslash
final = r"{} {}".format( xulrunner, inifile )
print(final)