我有一个像这样的CSV文件 编码UTF-8
# id english_word part_of_speech malayalam_definition
174569 .net n പുത്തന് കമ്പ്യൂട്ടര് സാങ്കേതികത ഭാഷ
116102 A bad patch n കുഴപ്പം പിടിച്ച സമയം
115869 A bed of nails n പ്രയാസപ്പെടുന്ന അവസ്ഥ
200587 A bed of nails idm ശരശയ്യ
115768 A bed of roses n സുഖകരമായ അവസ്ഥ
115767 A bed of roses n പൂമെത്ത
113832 A bed of thorn n അസുഖകരമായ അവസ്ഥ
113665 A bed roses n പൂമെത്ത
我必须从包含n
标记
import csv
with open('some.csv', newline='\t', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
这是我的代码,但它不起作用代码不生成输出,它没有。有什么建议吗?
Python 2.7
答案 0 :(得分:0)
在使用for row in f
进行迭代之前,必须先阅读csv文件。
首先,导入csv包:
import csv
之后,阅读csv文件:
with open('mycsv.csv','r') as f:
with open('n.csv','w') as new_file:
file_read = csv.reader(f,delimiter=';')
for row in file_read:
if not extract_n(row):
new_file.write(row)
分隔符字段可以是分号,逗号,o,无论你有什么。
答案 1 :(得分:0)
在the original code中," n" in row
与任何内容都不匹配,因为n
之前有一个制表符。如果总是有标签页,请尝试使用"\tn" in row
。
现在,问题是您的代码是Python 3版本。在Python 2.7中,open
函数不接受newline
参数,因此TypeError
。
这应该与制表符分隔的文件一起使用:
import csv
with open('some.csv', 'rb') as f:
reader = csv.reader(f, delimiter='\t')
for row in reader:
if "n" in row:
print(row)