Python遍历路径下文件并转换成UTF-8编码
2013-01-11 19:52
483 查看
开始学Python,这篇文章来自于应用需求。
os.walk很方便,下面写了两个版本的函数进行遍历,分别是不使用walk和使用walk的。
另外附上使用第一种方法转换文件编码的源码,有的文件转换后用gedit打开是乱码,但用vi查看是正确的。
1.14更新:发现linux自带的iconv -f gb18030 -t utf8 a.txt >> b.txt更好用,而且有的用decode("gb18030")会出现乱码("gbk"一样乱码)的情况不再存在。在python脚本不难调用,就不详细写了。
os.walk很方便,下面写了两个版本的函数进行遍历,分别是不使用walk和使用walk的。
import sys import string import os def detect_nowalk(dir_path): files = os.listdir(dir_path) for filename in files: print "file:%s\n" % filename next = os.path.join(dir_path, filename) if os.path.isdir(next): print "file folds:%s\n" % filename detect_nowalk(next) if __name__ == "__main__": detect_nowalk(".")
import sys import os def detect_walk(dir_path): for root, dirs, files in os.walk(dir_path): for filename in files: print "file:%s\n" % filename for dirname in dirs: print "dir:%s\n" % dirname if __name__ == "__main__": detect_walk(".")
另外附上使用第一种方法转换文件编码的源码,有的文件转换后用gedit打开是乱码,但用vi查看是正确的。
import sys import string import codecs import os import shutil def gbkToUtf8(path): files = os.listdir(path) for filename in files: if os.path.isdir(filename): print "file folds:%s\n" % filename gbkToUtf8(filename) continue try: tokens = string.splitfields(filename, '.') if len(tokens) != 2 or tokens[1] != 'txt': #print tokens[1] continue else: print 'Encode Converting (GBK to UTF-8) : ', filename utfFile=open(filename) tstr = utfFile.read() #tstr = utfFile.read().decode("gbk") is wrong tstr = tstr.encode("UTF-8") utfFile.close() utfFile = open(filename, 'w') utfFile.write(tstr) utfFile.close() except: print "error %s" %filename if __name__ == "__main__": gbkToUtf8(".")
1.14更新:发现linux自带的iconv -f gb18030 -t utf8 a.txt >> b.txt更好用,而且有的用decode("gb18030")会出现乱码("gbk"一样乱码)的情况不再存在。在python脚本不难调用,就不详细写了。
相关文章推荐
- Python遍历路径下文件并转换成UTF-8编码
- Python遍历路径下文件并转换成UTF-8编码
- Python遍历路径下文件并转换成UTF-8编码
- [Python爬虫] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
- Python读取Unicode编码格式的文件(转换为UTF-8)
- [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题
- 文件转换为utf-8编码(python小脚本)
- Python实现把utf-8格式的文件转换成gbk格式的文件
- (好文转发)关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
- LINUX 转换文件编码 GBK->UTF-8文件编码批量转换脚本[zt]
- Unicode 编码中文 + 未编码中文符号 转换成UTF-8 中文 python实现
- Ansi,Unicode(little endian),Unicode big endian,UTF-8编码文件相互转换
- paip.utf-8,unicode编码的本质输出unicode文件原理 python
- C++中,将.txt文件的编码由UTF-8转换为ANSI
- python解决js文件utf-8编码乱码问题(推荐)
- python编程 强制转换编码utf-8
- 关于Python文档读取UTF-8编码文件问题
- 识别常见编码格式文件并转换成UTF-8编码 的java实现 源码
- Python遍历某目录下的所有文件夹与文件路径
- python将图片文件转换成base64编码的方法