如何将txt文件转换为cs

2024-10-04 05:21:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个txt文件,有214列(数据用空格隔开)和大约50万行。在

我想将txt转换为csv,并使用了以下代码:

import csv

txt_file = r"myfile.txt"
csv_file = r"myfile.csv"

in_txt = csv.reader(open(txt_file, "r"), delimiter = " ", quotechar=" ")
out_csv = csv.writer(open(csv_file, 'w', newline='\n'),delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)

out_csv.writerows(in_txt)

但这会将我的数据导出到一个csv文件中,所有的列都用空格隔开,在excel的第一个A列中。。。我最终希望能够将txt转换为csv,并在此过程中删除10th-48th, 50-61, 65, 67, 68, 71-75, 77, 78, 80-88, 91, 93, 96-100, 102, 105-110, 112-114, 116-119, 122-126, 128-134, 136-140, 142-151, 153-155, 160-162, 165-169, 172-173, 175-177, 179-187, 189-196, 198, 199 & 201-214列。我确信这很简单,但我正在努力解决如何做到这一点


Tags: 文件csv数据代码inimporttxtopen
2条回答

必须将writer的分隔符设置为逗号。在

import csv

txt_file = r"myfile.txt"
csv_file = r"myfile.csv"

in_txt = csv.reader(open(txt_file, "r"), delimiter = " ", quotechar=" ")
out_csv = csv.writer(open(csv_file, 'w', newline='\n'),delimiter=',', quotechar=' ', quoting=csv.QUOTE_MINIMAL)
                                                   # changed this ^

out_csv.writerows(in_txt)

你可以为每一行删除一行。生成器表达式允许您修改每一行,而无需同时加载所有行

^{pr2}$

你必须改变

out_csv = csv.writer(open(csv_file, 'w', newline='\n'),delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)

^{pr2}$

因为您希望编写器在生成的csv文件中使用“;”作为分隔符。 对于删除列,我认为除了在For循环中迭代这些列之外,没有其他方法,只有在当前列不是这些列之一的情况下才写入它。在

例如:

first_row = next(in_read);    
for x in range(0, length(first_row)):
    if x not 10:
       write()

相关问题 更多 >