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=True
, чтобы команда работала правильно.