Python遍历路径下文件并转换成UTF-8编码
来源:互联网 发布:js乱码怎么解决 编辑:程序博客网 时间:2024/06/06 12:38
开始学Python,这篇文章来自于应用需求。
os.walk很方便,下面写了两个版本的函数进行遍历,分别是不使用walk和使用walk的。
import sysimport stringimport osdef 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 sysimport osdef 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" % dirnameif __name__ == "__main__": detect_walk(".")
另外附上使用第一种方法转换文件编码的源码,有的文件转换后用gedit打开是乱码,但用vi查看是正确的。
import sysimport stringimport codecsimport osimport shutildef 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编码
- 路径下文件遍历
- linux下文件编码格式转换方法(gb18030/utf-8)
- [转]linux下文件编码格式转换方法(gb18030/utf-8)
- bash shell 遍历指定目录下文件 iconv 编码转换
- Linux下文件编码转换
- python 遍历目录下文件
- LINUX下文件字符集编码查看与转换并文件名编码转换
- LINUX下文件字符集编码转换
- Linux下文件字符集编码转换
- linux下文件转换编码格式
- LINUX下文件字符集编码转换
- linux下文件编码批量转换
- Linux下文件编码格式转换
- Linux下文件字符集编码转换
- shell模式下文件编码转换
- linux下文件编码格式转换方法
- Linux下文件字符集编码转换
- B-树的学习笔记与C实现
- 稀疏图上的Johnson算法
- VC维含义的个人理解
- Linux下Matlab的安装和中文显示支持
- Ubuntu下OpenCV的安装和QT调用openCV库的方法
- Python遍历路径下文件并转换成UTF-8编码
- MATLAB生成正态样本以及正态矩阵、从文件读入矩阵
- 使用Xshell连接Ubuntu
- gdb调试命令
- Java Tip 27: Typesafe constants in C++ and Java
- 以root权限运行自己所编译程序的方法
- 再读UNPv1:复习、实践、小结
- 《大话设计模式》Python版代码实现
- Inside COM读书笔记-----ExE中的服务器