指我和字符编码。
今天写文档,需要把所有源码填到一个Word文档里,因为一个一个打开复制很麻烦,于是打算用Python弄。
当然最后花了更多的时间。
也是可以预见的。
1 #encoding:utf-8 2 import os 3 4 dir = r'C:UsersmlxyworkspaceProjectsrc' 5 6 def fetchFileRecursively(dir, fileExt): 7 ''' 递归获取路径下所有指定扩展名的文件的绝对路径作为列表返回。''' 8 result = [] 9 10 files = os.listdir(dir) 11 12 for i in files: 13 # 拼完整路径。 14 file = os.path.join(dir, i) 15 16 if os.path.isdir(file): 17 result.extend(fetchFileRecursively(file, fileExt)) 18 elif os.path.isfile(file): 19 if i.endswith(fileExt): 20 result.append(file) 21 22 return result 23 24 def readContent(file): 25 ''' 读取文件内容。''' 26 with open(file, 'r') as f: 27 return f.read() 28 29 if __name__ == '__main__': 30 javas = fetchFileRecursively(dir, 'java') 31 32 with open('result.txt', 'w') as f: 33 for i in javas: 34 content = readContent(i).decode('u8', 'ignore').encode('u8') 35 f.write(content+' ') 36 37 print 'Done.'
我真的不明白用同一种编码先decode又encode是一种什么疾病了。