txt转csv文件避免部分空值没有转化的问题

txt_file = ''
csv_file =''

csvFile = open(csv_file, 'w', newline='', encoding='utf-8')
writer = csv.writer(csvFile)
csvRow = []

f = open(txt_file, 'r', encoding='utf-8')
for line in f:
    csvRow = line.split()
    writer.writerow(csvRow)
f.close()
csvFile.close()

如上述代码所示,虽然可以将txt文件转化为csv文件格式,但是如果txt文件中有空值,那么在生成的CSV文件中会出现错误(在txt转csv时,不会识别出空值的格式,除非你的空值是0或null)。如果你的空值是是空格或者tab的形式出现,就很容易导致错误。可以尝试如下方法

txt_file = ''
csv_file =''

with open(txt_file, 'r', encoding='utf-8') as f:
    reader = csv.reader(f, delimiter='\t')
    with open(csv_file, 'w', newline='', encoding='utf-8') as csvFile:
        writer = csv.writer(csvFile)
        for row in reader:
            writer.writerow(row)

上述代码首先使用csv.reader()方法读取txt文件,将其分割为单独的行和列。由于原始文件中每个字段间使用了制表符作为分隔符,因此指定delimiter参数为’\t’。然后使用csv.writer()方法写入到csv文件中。这样做能够避免部分空值没有转化的问题,同时也更加简洁易懂。

猜你喜欢

转载自blog.csdn.net/JAX_fire/article/details/130563042