编写CSV Python
我想从另一个csv文件(编写CSV Python,python,csv,Python,Csv,我想从另一个csv文件(infle)中写入csv(outfile)文件。在inflecsv数据中,像这样写入OF0A0C,00,D0,0F11AFCB我想写入outfile和infle一样,但我得到的是这样的“\r\n0,F,0,A,0,C”,“0,0”,“D,0”,“0”,“0,F,1,1,A,F,C,B\r\n 我的代码如下: with open ("from_baryon.csv", "r") as inFile: with open (self.filename, "a") as
infle
)中写入csv(outfile
)文件。在infle
csv数据中,像这样写入OF0A0C,00,D0,0F11AFCB
我想写入outfile
和infle
一样,但我得到的是这样的“\r\n0,F,0,A,0,C”,“0,0”,“D,0”,“0”,“0,F,1,1,A,F,C,B\r\n
我的代码如下:
with open ("from_baryon.csv", "r") as inFile:
with open (self.filename, "a") as outFile:
for line in inFile:
OutFile = csv.writer (outFile)
OutFile.writerow (line)
写入后,我想将行中的每个数据保存到列表中,如下所示data=[[length\u of_all\u data],[length\u data\u row\u 1,datarow1],[length\u data\u row\u row\u 2,datarow1 datarow2],[length\u data\u row\u row\u 3,datarow1 datarow3]
我不知道如何用那样的方式保存列表。谢谢你,没什么问题-
csv
模块的csv.reader()
读取输入csv文件,而不是在其行上迭代,因为当您在其行上迭代时,您会在迭代中以字符串的形式将该行取回作为infire:
中的行,然后使用OutFile.writerow(行)将该行写回
,因此它将每个字符写入不同的列中OutFile=csv.writer(OutFile)
with open ("from_baryon.csv", "r") as inFile:
with open (self.filename, "a") as outFile:
out_file = csv.writer (outFile)
in_reader = csv.reader(inFile)
for row in in_reader:
out_file.writerow(row)
编辑:对于更新的第二个问题,您可以创建一个列表和一个计数器来跟踪完整的长度-
with open ("from_baryon.csv", "r") as inFile:
with open (self.filename, "a") as outFile:
out_file = csv.writer (outFile)
in_reader = csv.reader(inFile)
data = []
lencount = 0
for row in in_reader:
out_file.writerow(row)
tlen = len(''.join(row))
data.append([tlen] + row)
lencount += tlen
data.insert(0,[lencount])
谢谢,它解决了我的第一个问题。你知道第二个问题吗?第二个问题是什么?我不太清楚。你在找
OutFile.writerows(数据)
?不,我只是编辑了我的帖子。我的第二个问题是保存到列表。对于第二期,你可以用例子来解释。例子:在我的outfile
csv中,数据是这样的:“0F0A0C,00,0FF11C”,“0F0A0C,00,0FF11D”
我想保存成这样的列表:[[32],[16,0F0A0C,00,0FF11C],[16,0F0A0C,00,0FF11C]
谢谢。