之间有什么区别__str__和__repr__在__str__?
在问这个问题时,我意识到我对原始字符串知之甚少.对于那些自称是Django训练师的人来说,这很糟糕.
我知道编码是什么,而且我知道u''自从我得到什么是Unicode以来我们独自做了什么.
但到底r''做了什么呢?它会产生什么样的字符串?
And above all, what the heck does ur'' do?
Finally, is there any reliable way to go back from a Unicode string to a simple raw string?
Ah, and by the way, if your system and your text editor charset are set to UTF-8, does u'' actually do anything?
我写的时候:
print '\'或print "\"或print "'\'"
Python不会打印反斜杠\符号.
我该怎么做才能得到预期的结果?
我有一个包含双引号和反斜杠的字符串,我想在Python中设置一个变量.但是,每当我尝试设置它时,引号或斜杠都会被删除或转义.这是一个例子:
>>> foo = 'baz "\"'
>>> foo
'baz ""'
Run Code Online (Sandbox Code Playgroud)
所以,而不是baz "\"像我想要的那样baz "".如果我然后试图逃避反斜杠,它也没有帮助:
>>> foo = 'baz "\\"'
>>> foo
'baz "\\"'
Run Code Online (Sandbox Code Playgroud)
现在哪个符合我的要求但不是我原本想要的.你是如何解决这个问题的?
我试图-]\^$*.用一个反斜杠来逃避每个角色\.
例如,字符串:^stack.*/overflo\w$arr=1将变为:
\^stack\.\*/overflo\\w\$arr=1
Run Code Online (Sandbox Code Playgroud)
在Python中最有效的方法是什么?
re.escape 双逃脱不是我想要的:
'\\^stack\\.\\*\\/overflow\\$arr\\=1'
Run Code Online (Sandbox Code Playgroud)
我需要这个以逃避其他东西(nginx).
我需要&在字符串中转义(&符号)字符.问题是每当我string = string.replace ('&', '\&')得到结果时'\\&'.添加额外的反斜杠以逃避原始反斜杠.如何删除这个额外的反斜杠?
我有一本字典:
my_dictionary = {"058498":"table", "064165":"pen", "055123":"pencil"}
Run Code Online (Sandbox Code Playgroud)
我迭代它:
for item in my_dictionary:
PDF = r'C:\Users\user\Desktop\File_%s.pdf' %item
doIt(PDF)
def doIt(PDF):
part = MIMEBase('application', "octet-stream")
part.set_payload( open(PDF,"rb").read() )
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
IOError: [Errno 2] No such file or directory: 'C:\\Users\\user\\Desktop\\File_055123.pdf'
Run Code Online (Sandbox Code Playgroud)
它无法找到我的文件.为什么它认为文件路径中有双反斜杠?
我对正则表达式中的反斜杠感到困惑.在正则表达式中,a \具有特殊含义,例如,\d表示十进制数字.如果在反斜杠前添加反斜杠,则此特殊含义会丢失.在正则表达式中,人们可以阅读:
也许最重要的元字符是反斜杠,
\.与Python字符串文字一样,反斜杠后面可以跟各种字符,以指示各种特殊序列.它也用于转义所有元字符,因此您仍然可以在模式中匹配它们; 例如,如果你需要匹配一个[或者\,你可以在它们前面加一个反斜杠来删除它们的特殊含义:\[或者\\.
所以print(re.search('\d', '\d'))给出None因为\d匹配任何十进制数字,但没有\d.
我现在期望print(re.search('\\d', '\d'))匹配,\d但答案仍然是None.
仅print(re.search('\\\d', '\d'))给出输出<_sre.SRE_Match object; span=(0, 2), match='\\d'>.
有人有解释吗?
我正在尝试使用以下代码替换字符串中的反斜杠'\'
string = "<P style='TEXT-INDENT'>\B7 </P>"
result = string.replace("\",'')
Run Code Online (Sandbox Code Playgroud)
结果:
------------------------------------------------------------
File "<ipython console>", line 1
result = string.replace("\",'')
^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)
在这里我不需要反斜杠,因为实际上我正在解析一个xml文件,它有一个上述格式的标签,所以如果反斜杠在那里,它会invalid token在解析过程中显示
我可以知道如何在python中用空字符串替换反斜杠
所以我使用yaml作为一些配置文件,并使用py yaml来解析它.对于一个领域,我有类似的东西:
host: HOSTNAME\SERVER,5858
Run Code Online (Sandbox Code Playgroud)
但是当它在这里得到解析时我会得到:
{
"host": "HOSTNAME\\SERVER,5858"
}
Run Code Online (Sandbox Code Playgroud)
有2个反斜杠.我尝试了单引号,双引号等的每种组合.正确解析它的最佳方法是什么?谢谢
python ×10
escaping ×2
replace ×2
string ×2
dictionary ×1
file ×1
nginx ×1
path ×1
python-2.7 ×1
python-2.x ×1
rawstring ×1
regex ×1
repr ×1
unicode ×1
yaml ×1