python批量 unix、windows 文件格式互换

x33g5p2x  于2022-08-17 转载在 Python  
字(1.5k)|赞(0)|评价(0)|浏览(838)
import os
import stat

def change_dos_to_unix(path):
    g = os.walk(path)
    files = ['%s/%s' % (i[0], j) for i in g for j in i[-1]]

    for subpath in files:
        mode = os.stat(subpath)[stat.ST_MODE]
        if stat.S_ISDIR(mode):
            continue
        else:
            with open(subpath, "rb+") as file_handle:
                all_text = file_handle.read()
                if b"\r\n" in all_text:
                    print("now is dos system convert to unix:",os.path.basename(subpath))
                elif b"\n" in all_text:
                    print("now is unix system do nothing:",os.path.basename(subpath))
                all_change_text = all_text.replace(b"\r\n",b"\n")
                file_handle.seek(0, 0)
                file_handle.truncate()
                file_handle.write(all_change_text)

def change_unix_to_dos(path):
    g = os.walk(path)
    files = ['%s/%s' % (i[0], j) for i in g for j in i[-1]]

    for subpath in files:
        mode = os.stat(subpath)[stat.ST_MODE]
        if stat.S_ISDIR(mode):
            continue
        else:
            with open(subpath, "rb+") as file_handle:
                all_text = file_handle.read()
                if b"\r\n" in all_text:
                    print("now is dos system do nothing:",os.path.basename(subpath))
                elif b"\n" in all_text:
                    print("now is unix system convert to dos:",os.path.basename(subpath))
                all_change_text = all_text.replace(b"\n", b"\r\n")
                file_handle.seek(0, 0)
                file_handle.truncate()
                file_handle.write(all_change_text)
            # print("change %s file to dos format." % subpath)

if __name__ == '__main__':

    dir=r'F:\project\jushi\tensorrt-onnx-fasterrcnn-fpn-roialign-master\tensorrt_code\src\application\app_fasterrcnn_tmp'
    change_unix_to_dos(dir)

代码做了稍微改进,

原版:python文件格式(unix、windows)互换_Z小偉的博客-CSDN博客

相关文章