簡體   English   中英

如何使用Python刪除csv文件中的雙引號(“)?

[英]How to remove double quotes(") in csv file with Python?

我在csv文件中的輸入如下所示:

   “No”    “ename” age  “gender”   “salary”
    1   “aaa”   23     f          1000
    2   “bbb”   24     m          2000
    3   “ccc”   25    “f”         3000
    4   “ddd”   35     m          4000
    5   “eee”   27     f          5000

編寫以下代碼來刪除.csv文件中的引號。

import csv

csv.register_dialect('myDialect', delimiter=',', doublequote=False,
                     quoting=csv.QUOTE_NONE, skipinitialspace='True')

f = open("pythonFiles/normal.csv", 'r')

normal = csv.reader(f, dialect='myDialect')

for data in normal:
    print(data, len(data))

輸出如下所示。 我要刪除所有引號。

['“No”', '“ename”', 'age', '“gender”', '“salary”'] 
['1', '“aaa”', '23', 'f', '1000'] 
['2', '“bbb”', '24', 'm', '2000'] 
['3', '“ccc”', '25', '“f”', '3000'] 
['4', '“ddd”', '35', 'm', '4000'] 
['5', '“eee”', '27', 'f', '5000'] 

也許您可以只使用replace(...)

for data in normal:
    data = [d.replace('“', '').replace('”', '') for d in data]
    print(data, len(data))

如果要保持內部引號完整,也可以執行lstrip(...)rstrip(...)

for data in normal:
    data = [d.lstrip('“').rstrip('”') for d in data]
    print(data, len(data))

請注意,您使用的引號不僅是簡單的“雙引號”( " ),還包括“左雙引號”( )”和“右雙引號”( " )。

從安德烈(André)的答案中汲取靈感,我在下面修改了您的代碼

import csv

    csv.register_dialect('myDialect', delimiter=' ', doublequote=True,
                         quoting=csv.QUOTE_NONE, skipinitialspace='True')

    f = open("normal.csv", 'r')
    f = f.read().replace('“', '').replace('”', '').splitlines()
    normal = csv.reader(f, dialect='myDialect')

    for data in normal:
        print(data, len(data))

如果您對此感到滿意,請選擇André的答案作為接受的答案。 干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM