我有 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]])