如何在csv文件中使用python替换特殊字符串字符模式

ef1yzkbh  于 2022-12-06  发布在  Python
关注(0)|答案(1)|浏览(119)

我是python的新手,我正在尝试编辑一个.csv文件,用分号“;“。用我现在拥有的代码,我可以用除分号之外的任何字符来更改逗号。你知道我怎么做吗?提前感谢你的帮助。:)

import re

#open your csv and read as a text string
csv_path = r"test.csv"
with open(csv_path, 'r') as f:
    my_csv_text = f.read()

find_str = ","
replace_str = "''"

#substitute
new_csv_str = re.sub(find_str, replace_str, my_csv_text)

#open new file and save
new_csv_path = r"new_test.csv" # or whatever path and name you want
with open(new_csv_path, 'w') as f:
    f.write(new_csv_str)

我仍然有同样的问题。尽管如此,谢谢你们所有人的回答。我可以在这个问题上带来一些精确性。
这个想法是用分号代替逗号而不改变结构。但事实上,这种改变产生了冲突,因为.csv文件的单元格之间的分隔是通过逗号完成的。
我尝试了另外两个例子,也创建了结构的变化....我不能上传图片给你看的例子,因为网站显示我:“上传图像失败;服务器”“上发生错误。因此我直接将照片链接到ImgBB站点上。
Screen Before
Screen After
我希望这能帮助你澄清这个问题。再次感谢

l3zydbqr

l3zydbqr1#

以下代码适用于;

cat semi_colon_test.csv                                                                                                                                                                                                 
1,2,3,4
5,6,7,8

import re

find_str = ","
replace_str = ";"

with open('semi_colon_test.csv') as f:
    file_text = f.read()
    replaced_text = re.sub(find_str, replace_str, file_text)
    with open('replaced_test.csv', 'w') as r_file:
        r_file.write(replaced_text)

cat replaced_test.csv                                                                                                                                                                                                   
1;2;3;4
5;6;7;8

您可以跳过re搜索并使用Python csv模块进行替换:

import csv

with open('semi_colon_test.csv') as f:
    csv_reader = csv.reader(f)
    rows_list = []
    for row in csv_reader:
        rows_list.append(row)
    with open('replaced_test.csv', 'w') as r_file:
        csv_writer = csv.writer(r_file, delimiter=';')
        csv_writer.writerows(rows_list)

相关问题