我尝试使用python脚本在一个循环中编辑一个包含.html文件的大目录。我无法循环使用手术室步行(). 这段代码只是将html文件转换成可以使用的字符串,但是脚本甚至没有进入循环,好像文件不存在一样。基本上,它打印point1
,但从未到达{
奇怪的是,这段代码在一个只包含.txt文件的相邻目录上运行得很好,但是由于某种原因它似乎没有抓取我的.html文件。关于for root, dirs, filenames in 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
任何帮助都是非常感谢的。在
你的问题是你在路径中使用了反斜杠:
因为Python字符串使用反斜杠来转义特殊字符,因此在
rootdir
中,\f
表示ASCII Form Feed字符,\a
表示ASCIIBell字符。在您可以使用原始字符串(注意撇号前的
^{pr2}$r
)来避免这种情况:。。。或者只使用常规斜杠,在Windows上是work fine:
正如Huu-Nguyen指出的,在可能的情况下使用^{} 构造路径被认为是一个好的实践。。。这样你就完全避免了这个问题:
通过使用
os.path.join
,您可以避免显式地处理任何类型的斜杠:反斜杠用作转义符。或者加倍,或者使用“原始字符串”加上前缀“r”。在
示例:
说明:In Python, what does preceding a string literal with “r” mean?
相关问题 更多 >
编程相关推荐