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