>>> r'\'
File "<stdin>", line 1
r'\'
^
SyntaxError: EOL while scanning string literal
>>> r'\\'
'\\\\'
>>> r'\\\'
File "<stdin>", line 1
r'\\\'
^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)
似乎解析器可以将原始字符串中的反斜杠视为常规字符(不是原始字符串的全部内容吗?),但我可能遗漏了一些明显的东西.TIA!
例如,表示Windows目录的最佳方法是什么"C:\meshes\as"?我一直在尝试修改脚本,但它永远不会起作用,因为我似乎无法正确获取目录,我假设因为'\'扮演转义角色?
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转义
我如何使用'\'作为'\'而不是逃避?
我试图使用os.chdir更改python中的当前工作目录.我有以下代码:
import os
os.chdir("C:\Users\Josh\Desktop\20130216")
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,似乎更改了目录,因为它出现以下错误消息:
Traceback (most recent call last):
File "C:\Users\Josh\Desktop\LapseBot 1.0\LapseBot.py", line 3, in <module>
os.chdir("C:\Users\Josh\Desktop\20130216")
WindowsError: [Error 2] The system cannot find the file specified
'C:\\Users\\Josh\\Desktop\x8130216'
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
另请参阅为什么我不能用反斜杠结束原始字符串?而为什么不能Python的原始字符串文字用一个反斜杠结束?问题和相关答案.
在我的Python 2程序中,我使用了大量带有嵌入式反斜杠的文字字符串.我可以使用另一个反斜杠来转义每个反斜杠(例如:) "red\\blue"或使用Python原始字符串(例如:) r"red\blue".我已经对原始字符串方法进行了标准化,除了一个方法之外,它在所有情
如果我想表示一个双反斜杠,我可以使用r"\\",但如果我尝试输入一个反斜杠文字r"\"Python抱怨语法错误.显而易见的解决方法是"\\"在这种情况下使用,但为什么单个原始字符串反斜杠是错误的? 这是Python中的错误吗? 有没有办法将单个反斜杠编码为原始字符串?
例:
>>> r"red\blue"
'red\\blue'
>>> r"\\"
'\\\\'
>>> r"\"
File "<stdin>", line 1
r"\"
^
SyntaxError: EOL while scanning string literal
>>>
Run Code Online (Sandbox Code Playgroud)
我宁愿在整个程序中使用原始字符串保持一致,并且"\\"在几个地方使用它看起来像一个kludge.使用r"\\"[0]并不是更好.我一直在使用一个常数也被认为是BACKSLASH其中BACKSLASH = r"\\"[0]在程序的开始.另一个kludge.
更新:
当原始字符串末尾有一个奇数个反斜杠时,也会发生此错误.使用的默认字符串扫描程序将反斜杠解释为转义字符,以便最后一个反斜杠将转义结束引号字符.它的目的是"并且'可以嵌入到字符串中,但是生成的字符串仍然会将内部的反斜杠作为普通字符.
有几个与此问题相关的问题,但没有一个答案解释了为什么单个反斜杠原始字符串是错误或如何将单个反斜杠编码为原始字符串:
例如,我想从用户输入绝对路径,如“C:\Users\User\Desktop”并将其更改为“C:\\Users\\User\\Desktop”,但是当我执行以下操作时:
path = input("Enter path: ")
和
path = path.replace("\", "\\")
当\\触发的转义序列时,它会引发语法错误。我如何绕过这个并实现替换?
更正:它需要输入并自行调整!没有必要做上面提到的这种事情......
python ×6
string ×4
backslash ×1
chdir ×1
directory ×1
literals ×1
path ×1
python-2.7 ×1
python-3.x ×1
rawstring ×1
replace ×1
str-replace ×1
syntax-error ×1