动态生成代码并在.write()python中使用

2024-05-19 15:19:50 发布

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

我想将一个大的tab分隔的.txt文件转换成csv文件,但要使它可以与任何列数的文件一起重用。我尝试使用csv模块的正常进程,但希望一次只使用一行,以使内存使用最小化

下面的代码是我的尝试,但在查找了几个小时后,找不到有效的方法将正确的文本插入outFile.write()中。有没有一种反向repr可以插入.format和字符串来正常工作

谢谢

import csv

openFile = open("tsvTest.txt")
outFile = open("csvTest.csv", "w")
c = 0
for line in openFile:
    tString = line.split('\t')
    if c == 0:
        x = 0
        lString = []
        length = len(tString)
        while x < length-1:
            lString.append("{{tString["+str(x)+"]}}")
            x = x+1
        #lineInput = ''.join(map(str, lString))
        c = 1

    outFile.write(lString)
outFile.close()

Tags: 模块文件csvtxtlineopentablength
1条回答
网友
1楼 · 发布于 2024-05-19 15:19:50

如果字段本身没有制表符(因为您使用split('\t')),则可以执行以下操作:

with open("tsvTest.txt") as I, open("csvTest.csv", "w") as O:
    for line in I:
        flds = line.split('\t')
        O.write(','.join(flds))

相关问题 更多 >