- 论坛徽章:
- 0
|
10可用积分
代码如下:
#! /usr/bin/env python
'collect some file '
import os,sys
def walkdir(dirname):
try:
ls=os.listdir(dirname)
except:
print("access deny")
else:
all=os.path.join(dirname, 'all.docx')
try:
dest=open(all,'w')
except:
print("create dest failed")
else:
dest.write('All infomation as follows:')
for filename in ls:
temp=os.path.join(dirname, filename)
if(os.path.isdir(temp)):
walkdir(temp)
else:
print(temp)
try:
fobj=open(temp,'r')
except:
print("open file error")
else:
for eachline in fobj:
print(eachline)
fobj.close()
if __name__=="__main__":
dir=input("Type a directory name:")
walkdir(dir)
就是遍历一个目录,并且把每个文件内容一个一行打印啊,怎么加黑那行for eachline in 总是有问题,没这块就好了。。。
错误如下:
Traceback (most recent call last):
File "C:\Python30\test.py", line 39, in <module>
walkdir(dir)
File "C:\Python30\test.py", line 32, in walkdir
for eachline in fobj:
File "C:\Python30\lib\io.py", line 1744, in __next__
line = self.readline()
File "C:\Python30\lib\io.py", line 1817, in readline
while self._read_chunk():
File "C:\Python30\lib\io.py", line 1565, in _read_chunk
self._set_decoded_chars(self._decoder.decode(input_chunk, eof))
File "C:\Python30\lib\io.py", line 1299, in decode
output = self.decoder.decode(input, final=final)
UnicodeDecodeError: 'gbk' codec can't decode bytes in position 5-6: illegal multibyte sequence
咋办呢,我第一次用python做试验就卡住了,郁闷! |
最佳答案
查看完整内容
你的代码在py2.5下面没问题,把input改成raw_input中文显示正常。建议别用py3,另外win系统不是utf,只能手动编码解码另外别起test之类的名字,容易跟系统自带冲突,出现莫名的问题
|