如何替换CSV文件中的特定字符

2024-06-02 07:54:23 发布

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

我有一个CSV文件文件夹(~100),每个文件都有一个未知字符,如下所示�. 此未知字符应为双引号(“)。由于此未知字符,我无法运行CSV到xlsx转换器将文件转换为xlsx格式

我尝试使用csv.read()函数,但它不使用replace functionas csv.read()返回一个读卡器对象,替换不起作用。如何替换该字符并将替换的内容写回csv,以便运行csv到xlsx转换器

例如: 当前文件内容: “你好�

转换后的输出: “你好”


Tags: 文件csv对象函数文件夹内容read格式
3条回答

sed命令是为这种工作而设计的。它查找并替换文件中的字符。 在终端中使用此选项

sed -i 's/old-word/new-word/g' filename.csv

你的old-word应该是未知字符,new-word应该是双引号

试试这个:

import fileinput

with fileinput.FileInput("file.csv", inplace=True) as file:
    for line in file:
        print(line.replace('�', '"'), end='')

我使用这个小函数来处理这些问题。 这段代码完全是不言自明的。它打开一个文件,全部读取(对于大于RAM的文件可能不起作用),然后用补丁版本重写它

def patch_file(file, original, patch):
    with open(file, 'r') as f:
        lines = f.readlines()
    with open(file, 'w') as f:
        for line in lines:
            f.write(line.replace(original, patch))
            

patch_file(file='yourCSVfile.txt', original='�', patch'"')

相关问题 更多 >