在问这个问题时,我意识到我对原始字符串知之甚少.对于那些自称是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?
例如,表示Windows目录的最佳方法是什么"C:\meshes\as"?我一直在尝试修改脚本,但它永远不会起作用,因为我似乎无法正确获取目录,我假设因为'\'扮演转义角色?
我正在阅读http://docs.python.org/2/library/re.html.根据这个,蟒蛇re.compile(r '模式标志')中的"r" 指的是原始字符串表示法:
解决方案是使用Python的原始字符串表示法来表示正则表达式模式; 在前缀为'r'的字符串文字中,不会以任何特殊方式处理反斜杠.所以r"\n"是包含'\'和'n'的双字符字符串,而"\n"是包含换行符的单字符字符串.通常,模式将使用此原始字符串表示法在Python代码中表示.
那么说:那样公平吗
re.compile(r pattern)意味着"pattern"是一个正则表达式,而re.compile(pattern)意味着"pattern"是完全匹配的?
我正在尝试将以下标签中的数据分成pandas:
test.txt:
col_a\tcol_b\tcol_c\tcol_d
4\t3\t2\t1
4\t3\t2\t1
Run Code Online (Sandbox Code Playgroud)
我导入test.txt如下:
pd.read_csv('test.txt',sep='\t')
Run Code Online (Sandbox Code Playgroud)
结果数据框有1列.\ t不会被识别为选项卡.
如果我用'键盘选项卡'替换\ t,则正确解析文件.我也尝试用\ t和/ t替换'\ t',但没有任何运气.
在此先感谢您的帮助.
奥马尔
我正在尝试使用python脚本在循环中编辑.html文件的大目录.我在使用os.walk()循环访问文件名时遇到问题.这段代码只是将html文件转换为我可以使用的字符串,但是脚本甚至没有进入循环,就像文件不存在一样.基本上它打印point1但从未到达point2.脚本结束时没有错误消息.该目录设置在名为"amazon"的文件夹中,其中有一个级别为20个子文件夹,每个子文件夹中有20个html文件.
奇怪的是,代码完全适用于只包含.txt文件的邻居目录,但似乎它并没有因为某些原因而抓取我的.html文件.有什么我不了解的for root, dirs, filenames in os.walk()循环结构?这是我第一次使用os.walk,我已经查看了这个网站上的其他一些页面,试图让它工作.
import os
rootdir = 'C:\filepath\amazon'
print "point1"
for root, dirs, filenames in os.walk(rootdir):
print "point2"
for file in filenames:
with open (os.path.join(root, file), 'r') as myfile:
g = myfile.read()
print g
Run Code Online (Sandbox Code Playgroud)
任何帮助深表感谢.
如何有效地将包含反斜杠的多行字符串分割成单独的行,从而导致不需要的转义字符?
这是我正在处理的示例输入:
strInput = '''signalArr(0)="ASCB D\axx\bxx\fxx\nxx"
signalArr(1)="root\rxx\txx\vxx"'''
Run Code Online (Sandbox Code Playgroud)
我已经尝试过此操作(将单个反斜杠转换为双反斜杠。因此,反斜杠转义将具有优先级,并且随后的字符将被“正常”对待):
def doubleBackslash(inputString):
inputString.replace('\\','\\\\')
inputString.replace('\a','\\a')
inputString.replace('\b','\\b')
inputString.replace('\f','\\f')
inputString.replace('\n','\\n')
inputString.replace('\r','\\r')
inputString.replace('\t','\\t')
inputString.replace('\v','\\v')
return inputString
strInputProcessed = doubleBackslash(strInput)
Run Code Online (Sandbox Code Playgroud)
我想得到:
lineList = strInputProcessed.splitlines()
>> ['signalArr(0)="ASCB D\axx\bxx\fxx\nxx"','signalArr(1)="root\rxx\txx\vxx"']
Run Code Online (Sandbox Code Playgroud)
我得到了:
>> ['signalArr(0)="ASCB D\x07xx\x08xx', 'xx', 'xx"', 'signalArr(1)="root', 'xx\txx', 'xx"']
Run Code Online (Sandbox Code Playgroud) 可能的重复:
在Python中,字符串前面带有“r”是什么意思?
我正在学习 DjangoProject.com 网站上的 Django 教程。我来到了需要通过修改 urls.py 文件来配置 url 路由的部分。
这是我的问题;下面行中第一个字符串参数r之前的意思是什么?'^admin/'
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)