【发布时间】:2019-01-28 17:06:50
【问题描述】:
我在 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']
【问题讨论】:
-
您没有在代码中写入文件?您是否将
print重定向到文件? -
也许
quoting=csv.QUOTE_NONE不是正确的选择。 -
看来您的方言使用了 空格分隔符 并且引号不是 NONE 而是花哨的引号。
-
我认为我们的出发点是错误的。该 csv 文件不是包含逗号分隔值的文件。
-
@JoshuaSchlichting 我同意。如果设置了
delimiter=',',我很惊讶输出是这样的。我希望只有一列,因为空格实际上用作输入中的分隔符。
标签: python python-3.x csv opencsv