dos2unix 批量转化文件

在windows和linux双平台下开发,同时也用git作为同步工具,但前期没有注意,导致很多文件使用windows下的换行符CRLF

参考资料了解dos2unix可以转化格式。

但有个问题,虽然可以对文件夹直接操作,但不能处理文件夹中子文件夹文件

查了些,还是不知道如何列出windows子文件路径。因此打算直接使用python遍历文件夹下所有文件,调用命令行dos2unix处理文件。下面是python的代码

import subprocess

def run_cmd_async(shell_str):
    """非堵塞,调用命令行, 返回类变量,需自行获取运行结果"""
    shell_result = subprocess.Popen(shell_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    return shell_result
import os

def grc_run(src):
    for f in os.listdir(src):
        raw_path = os.path.join(src, f)
        if os.path.isdir(raw_path):
            grc_run(raw_path)
        else:
            print(raw_path)        
            run_cmd_async('"C:\Program Files\Git\usr\bin\dos2unix.exe" -k '+ raw_path)

1.上面的  "C:\Program Files\Git\usr\bin\dos2unix.exe"  是我自己电脑dos2unix路径,请各位修改。

2.保持文件时间戳不变,加上-k参数

grc_run('./')

最后运行python代码,指定需要转化的文件夹路径。上面代码是转化当前文件夹。

原文地址:https://www.cnblogs.com/duoxuan/p/9897665.html