python - 解析以引号开头的tsv文件
问题描述
我试图解析一个包含两列的 TSV 文件,有些行只包含引号。有没有办法使用python将它们解析为单独的行而不在引号前添加'\'?
presents O
it O
in O
" O
classical O
" O
principles O
on O
which O
' O
the O
operation O
was O
' O
conceived O
. O
我试过像这样的代码
with open("sample.tsv") as tsvfile:
tsvreader = csv.reader(tsvfile, delimiter="\t")
for line in tsvreader:
print (line)
三行的结果不正确
" O
classical O
" O
目前的结果是
['\tO\nclassical\tO\n', 'O']
我希望结果是
['"', 'O']
['classical', 'O']
['"', 'O']
解决方案
您可以通过在创建实例时csv.reader
添加来告诉忽略引号字符:quoting = csv.QUOTE_NONE
import csv
with open("sample.tsv") as tsvfile:
tsvreader = csv.reader(tsvfile, delimiter="\t", quoting=csv.QUOTE_NONE)
for line in tsvreader:
print (line)
输出(对于带引号的行):
['"', 'O']
['classical', 'O']
['"', 'O']
csv 模块的文档解释说csv.QUOTE_NONE
“指示reader
不对引号字符执行特殊处理”。
推荐阅读
- scala - Scala 中 => 和 -> 的区别
- python - Python 统计和可视化
- android - 如何为我的 Android 计时器应用程序使用语音识别?
- python - Python 正则表达式仅过滤特定的匹配词
- sailpoint - ManagedAttribute mgAttr =context.getObjectByName("ManagedAttribute.class",
") - php - 如何在 Laravel Eloquent 的 When 子句中的 Where 闭包中添加括号
- python - Pycharm - 如何在不将本地目录标记为源根目录的情况下导入本地模块?
- ruby-on-rails - 运行简单 UPDATE 时 PostgreSQL 中的死锁
- c# - 如何逐步找到所有子节点?
- java - 这个 fxml 错误代码在 JavaFx 中是什么意思