我正在尝试使用 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

任何帮助深表感谢。

最佳答案

反斜杠用作转义符。要么将它们加倍,要么通过在其上加上前缀“r”来使用“原始字符串”。

例子:

>>> 'C:\filepath\amazon'
'C:\x0cilepath\x07mazon'
>>> r'\x'
'\\x'
>>> '\x'
ValueError: invalid \x escape

解释:In Python, what does preceding a string literal with “r” mean?

关于python - os.walk() 没有获取我的文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23964759/

10-10 05:51