使用Python3,希望到os.walk
一個文件目錄,將它們讀入一個二進制對象(字符串?)並對它們做一些進一步的處理。第一步,但:如何閱讀os.walk
的文件結果?如何從文件中讀取文件內容?
# NOTE: Execute with python3.2.2
import os
import sys
path = "/home/user/my-files"
count = 0
successcount = 0
errorcount = 0
i = 0
#for directory in dirs
for (root, dirs, files) in os.walk(path):
# print (path)
print (dirs)
#print (files)
for file in files:
base, ext = os.path.splitext(file)
fullpath = os.path.join(root, file)
# Read the file into binary? --------
input = open(fullpath, "r")
content = input.read()
length = len(content)
count += 1
print (" file: ---->",base,"/",ext," [count:",count,"]", "[length:",length,"]")
print ("fullpath: ---->",fullpath)
錯誤:
Traceback (most recent call last):
File "myFileReader.py", line 41, in <module>
content = input.read()
File "/usr/lib/python3.2/codecs.py", line 300, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe2 in position 11: invalid continuation byte
韓國社交協會,倫納特 - 是的,這是祕密武器,我需要。有點新的Python3! – DrLou 2011-12-29 17:03:29
這實際上並不是Python的3特定。二進制文件也應該在Python 2中用'b'標誌打開。 – 2011-12-29 20:20:45
是啊,回想起來,這一切似乎有點愚蠢 - 但這就是我們白癡學習的方式!你可能會想:RTFM!再次感謝您的幫助。 – DrLou 2014-11-03 21:17:34