这里主要针对的就是格式和编码问题:
首先是代码:
import os
# 转换文件格式和编码方式
def to_lf(path, isLF, encoding = 'utf-8'):#这里打开的编码方式是utf-8
"""
:param path: 文件路径
:param isLF: True 转为Unix(LF) False 转为Windows(CRLF)
:param encoding: 编码方式,默认utf-8
:return:
"""
newline = '\n' if isLF else '\r\n' #Unix格式下 新一行就是\n,windows格式下,新一行就是\r\n
tp = 'Unix(LF)' if isLF else 'Windows(CRLF)'
with open(path, newline=None, encoding=encoding) as infile:
str = infile.readlines() #逐行读取文件
with open(path, 'w', newline=newline, encoding=encoding) as outfile: #文件写入,新一行用前面定义的newline
outfile.writelines(str) #逐行写入
print("文件转换成功,格式:{0} ;编码:{1} ;路径:{2}".format(tp, encoding, path)) #输出时参数化输出
if __name__ == "__main__":
rootdir = r'C:\Users\Administrator\Desktop\testl' #要转换编码的文件
isLF = False # True 转为Unix(LF) False 转为Windows(CRLF)
path_list = os.listdir(rootdir) #遍历出文件来
#path_list.sort(key=lambda x:int(x[:-4])) #对读取的路径进行排序
for filename in path_list:
path = os.path.join(rootdir,filename)
to_lf(path, isLF) #对文件进行转换的函数
注释里写的很清楚了,不过用notepad++转换更方便,点一下就可以了