当我在Python3上使用'os.walk'获取文件路径时,这个错误意味着什么?
这个错误太长了,所以我没有把它放在标题中。以下是错误:当我在Python3上使用'os.walk'获取文件路径时,这个错误意味着什么?,python,python-3.x,Python,Python 3.x,这个错误太长了,所以我没有把它放在标题中。以下是错误: Traceback (most recent call last): File "./auto_change_shebang_and_permission.py", line 12, in <module> shebang = f.readline() File "/usr/lib/python3.4/codecs.py", line 319, in decode (result, consumed) =
Traceback (most recent call last):
File "./auto_change_shebang_and_permission.py", line 12, in <module>
shebang = f.readline()
File "/usr/lib/python3.4/codecs.py", line 319, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8c in position 3: invalid start byte
它正在工作,但会引起错误。我不知道哪里出了问题。好了,现在我明白什么地方出了问题。因为
如果根[:3]=='./.
仅在sys.argv[1]
为时工作
然后,就像@AnandSKumar说的。程序得到的文件不是文本文件
所以现在我编辑代码如下:
if fnmatch(root, sys.argv[1]+'/.*'):
pass
现在它工作得很好,谢谢@AnandSKumar。您可以尝试打印文件名,您得到错误的原因很可能是,您得到错误的文件不是文本文件。@AnandSKumar好主意,让我试试。@AnandSKumar是的,您是对的。程序排除了隐藏文件,但不排除隐藏目录。现在我知道怎么了。
if fnmatch(root, sys.argv[1]+'/.*'):
pass