【问题标题】:Python adding extra text and braces while reading from CSV filePython 在读取 CSV 文件时添加额外的文本和大括号
【发布时间】:2022-01-05 22:04:08
【问题描述】:

我想使用 python 从 csv 文件中读取数据,但是在使用以下代码后,文本中有一些额外的字符和大括号不在原始数据中。 请帮忙删除。

import csv

with open("data.csv",encoding="utf8") as csvDataFile:
    csvReader = csv.reader(csvDataFile)

    for row in csvReader:
        print(row)

读取后显示的是:- ['\ufeffwww.aslteramo.it']

【问题讨论】:

标签: python selenium csv data-manipulation data-mining


【解决方案1】:

\ufeff 是一个 UTF-8 BOM(也称为'ZERO WIDTH NO-BREAK SPACE' 字符)。

有时用于表示文件为 UTF-8 格式。

您可以在代码中使用str.replace('\ufeff', '') 来摆脱它。像这样:

import csv

with open("data.csv",encoding="utf8") as csvDataFile:
    csvReader = csv.reader(csvDataFile)
    for row in csvReader:
        print([col.replace('\ufeff', '') for col in row])

另一种解决方案是使用“utf-8-sig”编码而不是“utf-8”编码打开文件。

顺便说一句,大括号是添加的,因为row 是一个列表。如果您的 CSV 文件只有一列,您可以像这样从每一行中选择第一项:

print(row[0].replace('\ufeff', ''))

【讨论】:

    【解决方案2】:

    这是带有字节顺序标记 (BOM) 的 utf-8 编码 - 在 Windows 中用作签名。

    使用utf-8-sig 编码而不是utf8 打开文件

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      相关资源
      最近更新 更多