我必须将.csv文件转换为.txt文件,并且具有以下代码。
text_list = []
csv_file = 'test.csv'
with open(csv_file,"r") as infile:
for line in infile:
line = line.split(",", 2)
text_list.append("\t".join(line))
txt_file = 'test.txt'
with open(txt_file, 'w') as outfile:
for line in text_list:
outfile.write(" " + line)
outfile.close
但是问题是
CSV档案:
phi,Z,T
0,0,0
10.000005,1.2,3000.00
20.000005,2.4,6000.00
所需的txt文件:
phi Z T
0 0 0
10.000005 1.2 3000.00
20.000005 2.4 6000.00
我具有上述代码的文本文件:
phi Z T
0 0 0
10.000005 1.2 3000.00
20.000005 2.4 6000.00
谢谢
您可以使用字符串方法在字符串ljust
中添加空格,使其具有一定的长度。因此,您将逐行读取输入文件,将逗号分隔为每一行,然后将其附加到text_list
,这将得到一个列表列表,其中每一行的每个单词都如此。
然后,我们num_cols
从第一行的长度计算列数。然后,我们使用嵌套列表理解来计算每列中最长单词/数字的长度。我们ljust
根据相应列的最大长度将其用于每个单词。
text_list = []
csv_file = 'test.csv'
with open(csv_file,"r") as infile:
for line in infile:
line = line.rstrip().split(",", 2)
text_list.append(line)
num_cols = len(text_list[0])
max_lengths = [max([len(line[i]) for line in text_list]) for i in range(num_cols)]
txt_file = 'test.txt'
with open(txt_file, 'w') as outfile:
for line in text_list:
outfile.write('\t'.join([word.ljust(max_lengths[i]) for i, word in enumerate(line)]) + '\n')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句