使用 python 将 csv 文件转换为 txt 文件时,不同行之间的不同级别的间距
Different level of spacing between rows on different lines while converting a csv file to txt file using python
我必须将 .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')
我必须将 .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')