如何使用python脚本转换dos2unix csv文件

时间:2019-10-13 11:25:46

标签: python dos2unix

我想在Windows中使用python将csv文件转换为dos2unix格式。 现在,我正在通过将csv文件放置在工作区(服务器)中并在putty中运行命令来手动进行操作。[命令:dos2unix file_received文件名]

2 个答案:

答案 0 :(得分:1)

dos2unix(我记得)几乎只将尾随的换行从每行上剥离。因此,有两种方法可以执行此操作。

with open(filename, "w") as fout: 
    with open(file_received, "r") as fin:
        for line in fin:
            line = line.replace('\r\n', '\n')
            fout.write(line)

或者您可以使用子进程直接调用UNIX命令。 警告:这很糟糕,因为您使用的是参数file_received,人们可能会在其中标记可执行命令。

import subprocess
subprocess.call([ 'dos2unix', file_received, filename, shell=False])

我还没有测试以上内容。 shell=False(缺省值)意味着不会为该进程调用UNIX shell。这样做可以避免有人在命令中插入命令,但是您可能必须使用shell=True才能使命令正常工作。

答案 1 :(得分:1)

以下代码可以解决问题:

import csv
out_file_path = 
in_file_path = 
with open(out_file_path,'w',newline='') as output_file:
    writer = csv.writer(output_file, dialect=csv.unix_dialect)
    with open(in_file_path,newline='') as input_file:
        reader = csv.reader(input_file)
        for row in reader:
            writer.writerow(row)