编写CSV Python

编写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

我想从另一个csv文件(
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]
    谢谢。