如何使用 Python 交换 CSV 文件中的行?



我有 11k csv 文件,其中只有两行,它们看起来像这样

---------------------------
| A0.31       |
---------------------------
some data    |             |
---------------------------

我希望它们只排在一行

---------------------------
some data    | A0.31       |
---------------------------

我有这段代码,但它只是替换了没有将它们放在一行中的值

import csv, os
with open('path/to/filename') as inf, open('path/to/filename_temp', 'w') as outf:
reader = csv.reader(inf)
writer = csv.writer(outf)
for line in reader:
if line[1] == '0':
...
... # as above
os.remove('path/to/filename')
os.rename('path/to/filename_temp', 'path/to/filename')

这应该可以解决问题。

#!python
value=""
data=""
with open("test.csv","r") as inF, open("out.csv","w") as outF:
lines= inF.readlines()
for line in lines:
if "-" in line:
continue
if line.isspace():
continue
fields=line.split("|")
if not fields[1].isspace():
value=fields[1]
elif not fields[0].isspace():
data=fields[0]
else:
continue
outF.write("-------------------------------------n")
outF.write(data +"|" + value+ "|" +"n")
outF.write("-------------------------------------n")

你指出你的文件是CSV,所以我假设你的文件实际上是CSV格式,即如下:

,'A0.31'
'some data',

如果你的文件真的那么短,我会简单地加载文件中的两行,然后立即将组合结果写入同一个文件:

import csv
data = []
with open('path/to/filename') as inf:
reader = csv.reader(inf)
for row in reader:
data.append(row)
with open('path/to/filename', 'w') as outf:
writer = csv.writer(outf)
writer.writerow([data[1][0], data[0][1]])

最新更新