我有上面提到的错误 s1="some very long string............"
谁知道我做错了什么?
例如,表示Windows目录的最佳方法是什么"C:\meshes\as"
?我一直在尝试修改脚本,但它永远不会起作用,因为我似乎无法正确获取目录,我假设因为'\'
扮演转义角色?
有没有办法在python中声明一个字符串变量,以便它内部的所有内容都自动转义,或者有它的文字字符值?
我不是要问如何用斜线来逃避引号,这是显而易见的.我要求的是一个通用的方法,使字符串文字中的所有内容,以便我不必手动完成并转义非常大的字符串的所有内容.有人知道解决方案吗?谢谢!
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Run Code Online (Sandbox Code Playgroud)
那么我们如何获得报价但不是斜线?
请不要建议,r'what"ever'
因为那时问题就变成了我们如何包含两种类型的报价?
我写的时候:
print '\'
或print "\"
或print "'\'"
Python不会打印反斜杠\
符号.
我该怎么做才能得到预期的结果?
在python中,我试图用双反斜杠("\")替换单个反斜杠("\").我有以下代码:
directory = string.replace("C:\Users\Josh\Desktop\20130216", "\", "\\")
Run Code Online (Sandbox Code Playgroud)
但是,这会给出一条错误消息,说它不喜欢双反斜杠.有人可以帮忙吗?
我曾经碰过一些东西,想知道这是一个Python"bug"还是至少是一个错误的.我很好奇是否有人知道这种行为的任何理由.我刚想起了"像Python一样的代码",到目前为止一直很愉快.我只熟悉2.x系列的Python.
原始字符串是以前缀为前缀的字符串r
.这很好,因为我可以在正则表达式中使用反斜杠,我不需要在任何地方加倍.在Windows上编写一次性脚本也很方便,所以我也可以在那里使用反斜杠.(我知道我也可以使用正斜杠,但是一次性脚本通常包含从Windows其他地方剪切和粘贴的内容.)
很好!当然,除非你真的希望你的字符串以反斜杠结尾.在'原始'字符串中没有办法做到这一点.
In [9]: r'\n'
Out[9]: '\\n'
In [10]: r'abc\n'
Out[10]: 'abc\\n'
In [11]: r'abc\'
------------------------------------------------
File "<ipython console>", line 1
r'abc\'
^
SyntaxError: EOL while scanning string literal
In [12]: r'abc\\'
Out[12]: 'abc\\\\'
Run Code Online (Sandbox Code Playgroud)
所以在结束引号之前的一个反斜杠是一个错误,但是两个反斜杠给你两个反斜杠!当然,我不是唯一一个被这个困扰的人吗?
关于为什么'原始'字符串是'原始的,除了反斜杠引用'的想法?我的意思是,如果我想在那里嵌入单引号,我只是在字符串周围使用双引号,反之亦然.如果我想要两者,我只是三重引用.如果我真的想在原始字符串中连续三个引号,那么,我想我必须处理,但这被认为是"正确的行为"吗?
对于Windows中的文件夹名称,这尤其成问题,其中反斜杠是路径分隔符.
import os
path= os.getcwd()
final= path +'\xulrunner.exe ' + path + '\application.ini'
print final
Run Code Online (Sandbox Code Playgroud)
我想要出局:
c:\ python25\xulrunner.exe c:\ python25\application.ini
我不希望反斜杠作为字符串工作,我的意思是不要让它逃脱或做任何特别的事情.但我得到一个错误
无效\ x转义
我如何使用'\'作为'\'而不是逃避?
r'\'
在Python中不能按预期工作.它不会返回一个带有一个字符(反斜杠)的字符串,而是引发一个SyntaxError.r"\"
做同样的事.
如果你有一个像这样的Windows路径列表,这是相当麻烦的:
paths = [ r'\bla\foo\bar',
r'\bla\foo\bloh',
r'\buff',
r'\',
# ...
]
Run Code Online (Sandbox Code Playgroud)
有没有理由不接受这个文字?
这是一个简单的Python应用程序,只需打印传入的命令行参数:
import sys
if __name__ == "__main__":
print "Arguments:"
for i in range(len(sys.argv)):
print "[%s] = %s" % (i, sys.argv[i])
Run Code Online (Sandbox Code Playgroud)
以下是一些示例运行:
python args.py hello world
Arguments:
[0] = args.py
[1] = hello
[2] = world
python args.py "hello world"
Arguments:
[0] = args.py
[1] = hello world
python args.py "hello\world"
Arguments:
[0] = args.py
[1] = hello\world
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但是现在当我用反斜杠结束任何争论时,Python就会扼杀它:
python args.py "hello\world\"
Arguments:
[0] = args.py
[1] = hello\world"
python args.py "hello\" world "any cpu"
Arguments:
[0] = args.py …
Run Code Online (Sandbox Code Playgroud) python ×9
string ×4
backslash ×2
escaping ×2
syntax ×2
command-line ×1
literals ×1
path ×1
python-2.7 ×1
replace ×1
shell ×1
syntax-error ×1
windows ×1