为什么在编写输出文件时在Python 2.7中将^ M添加到文件的最后一行?

问题描述 投票:1回答:1

这是我的文件,a.tsv

ENST00000330436 chr4    -       96099729        96125021
ENST00000332884 chr4    -       96518062        96549623
ENST00000651514 chr5    -       145620969       145647819
ENST00000550308 chr17   +       32532671        32551233
ENST00000371270 chr4    -       96294895        96343068^M

我在Python 2.7中使用过,

with open(a.tsv, 'wb') as f_output:
    tsv_output = csv.writer(f_output, delimiter='\n')
    tsv_output.writerow(output_unique)

生成上面的a.tsv文件。我看到文件最后一行的末尾有'^ M',我应该在上面的代码中进行更改以删除它吗?

python-2.7 csv row newline write
1个回答
0
投票

您的TSV文件使用DOS行尾(CRLF),而awk需要POSIX行尾。问题是您正在使用一次对writerow的调用来写入多行。就您的Python代码而言,它生成了一行,该行使用\n分隔fields

© www.soinside.com 2019 - 2024. All rights reserved.