无法替换csv中的字符并使用python将其保存到新文件中

2024-05-17 05:05:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv,它包含以下内容:

"DCA.P/C.05820","5707119001793","P/C STEELSERIES SURFACE QcK MINI","5,4","Yes"
"DCA.P/C.05821","5707119001779","P/C STEELSERIES SURFACE QcK","7,2","No"
"DCA.P/C.05823","5707119001762","P/C STEELSERIES SURFACE QcK+","11,9","No"

我正在尝试将csv更改为:

DCA.P/C.05820;5707119001793;P/C STEELSERIES SURFACE QcK MINI;5,4;Yes
DCA.P/C.05821;5707119001779;P/C STEELSERIES SURFACE QcK;7,2;No
DCA.P/C.05823;5707119001762;P/C STEELSERIES SURFACE QcK+;11,9;No

我不确定我是否正确地启动了它。你知道吗

def mycontents():   
igecontents = []
with open(source_initial1, 'r', encoding='ISO-8859-1',newline='') as csvf:
  data = ""
  data = csvf.read().replace('\","', '\";"').replace('"','')

with open(source_initial2, 'w', encoding='utf-8',newline='') as csvf:
    reader = csv.reader(csvf, delimiter=";")
    for row in reader:
        igecontents.append(row) 
return igecontents

我得到一个不可读的错误行


Tags: csvnosteelseriessourcewithopensurfaceencoding
2条回答

你不必担心逗号-csv会处理的

import csv

with open('input.csv') as file_in, open('output.csv', 'w') as file_out:
    csv_in = csv.reader(file_in, delimiter=',')
    csv_out = csv.writer(file_out, delimiter=';')
    for row in csv_in:
        csv_out.writerow(row)

或者甚至使用writerows()写入所有行

import csv

with open('input.csv') as file_in, open('output.csv', 'w') as file_out:
    csv_in = csv.reader(file_in, delimiter=',')
    csv_out = csv.writer(file_out, delimiter=';')
    csv_out.writerows(csv_in)

这就是pandas库真正强大和简洁的地方:

^{}/^{}一个内衬:

import pandas as pd
pd.read_csv('input.csv', sep=',').to_csv('output.csv', sep=';', index=False)

最后的output.csv内容:

DCA.P/C.05820;5707119001793;P/C STEELSERIES SURFACE QcK MINI;5,4;Yes
DCA.P/C.05821;5707119001779;P/C STEELSERIES SURFACE QcK;7,2;No
DCA.P/C.05823;5707119001762;P/C STEELSERIES SURFACE QcK+;11,9;No

相关问题 更多 >