在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代码,指定需要转化的文件夹路径。上面代码是转化当前文件夹。