gpt4 book ai didi

python - 将文件从 .txt 转换为 .csv 不会写入最后一列数据

转载 作者:行者123 更新时间:2023-11-28 18:27:32 27 4
gpt4 key购买 nike

我有一个文本文件,我试图将其转换为 .csv 文件,并在字符之间有空格的每个实例中将所有数据分成几列。以下代码正在执行此操作,但它并未写入最后一列数据。

txt_file = r'ATF_160A_AR-160B_Pr_Temp_test.txt'
data = []
with open(txt_file) as f:
for line in f:
data.append([word for word in line.split(' ') if word])


csv_file = r'ATF_160A_AR-160B_Pr_Temp_test.csv'
out_csv = csv.writer(open(csv_file, 'wb'))


out_csv.writerows(data)

文本文件如下所示。

odbName stepName instanceName  setName tmax_F tmax_C xcoord
abcd-1_AB.odb Nominal SPECIMEN_POS1-1 SET-1 789.345 420.747 0.0
abcd-1_AB.odb Nominal SPECIMEN_POS1-1 SET-1 751.559 399.755 0.1244
abcd-1_AB.odb Nominal SPECIMEN_POS1-1 SET-1 789.300 420.722 0.004976
abcd-1_AB.odb Nominal SPECIMEN_POS1-1 SET-1 789.193 420.663 0.009952
abcd-1_AB.odb Nominal SPECIMEN_POS1-1 SET-1 789.017 420.565 0.014928
abcd-1_AB.odb Nominal SPECIMEN_POS1-1 SET-1 788.770 420.428 0.019904

最佳答案

这是我的尝试:

txt_file = r'ATF_160A_AR-160B_Pr_Temp_test.txt'
csv_file = r'ATF_160A_AR-160B_Pr_Temp_test.csv'
with open(txt_file) as infile, open(csv_file, 'w') as outfile:
writer = csv.writer(outfile)
writer.writerows(row.split() for row in infile)

讨论

  1. 在不带任何参数的情况下调用 split() 来做正确的事情:按空格拆分,甚至是多个空格
  2. 如果您的输入文件很大,您不应该将它们放入一个列表 (data),而是处理每一行并写入,这样会更快并且需要更少的内存。

更新

试试看是否可以消除空白行:

    writer.writerows(row.split() for row in infile if row.strip())

更新2

让我们按照 Pat Jones 的建议再试一次(我认为他的意思是先剥离,然后拆分):

    writer.writerows(row.strip().split() for row in infile if row.strip())

关于python - 将文件从 .txt 转换为 .csv 不会写入最后一列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com