【发布时间】:2019-03-08 12:31:23
【问题描述】:
我有一个以 DC4 控制字符作为分隔符的数据文件。这是我现在的代码(我从别人那里复制的,不是我的代码)。
import csv
with open('Test.dat') as csv_file:
csv_reader = csv.reader(csv_file, quotechar='þ', delimiter='')
line_count = 0
for row in csv_reader:
if line_count == 0:
print(f'Column names are {", ".join(row)}')
line_count += 1
else:
print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.')
line_count += 1
print(f'Processed {line_count} lines.')
如您所见,字符由一个框显示,到目前为止只有 notepad++ 可以读取它。我找到了 curses.ascii.isctrl(c),它似乎能够通过 python 读取该字符,然后将其读取为插入符号? (https://docs.python.org/3.2/library/curses.ascii.html)
我是编码新手,不确定如何实现它,或者它是否对我有用。下面是我试图以文本和屏幕截图形式读取的 dat 文件示例。
þIdentifierþþColumn 2þþColumn 3þ
þXX_0012345þþRandom Data 1þþRandom Data 1þ
þXX_0012346þþRandom Data 6þþRandom Data 2þ
þXX_0012347þþRandom Data 1þþRandom Data 3þ
þXX_0012348þþRandom Data 8þþRandom Data 4þ
þXX_0012349þþRandom Data 1þþRandom Data 5þ
þXX_0012345þþRandom Data 9þþRandom Data 1þ
Text File to see the DC4 control character
这是在 python 3.6.1 上使用此代码时的输出。一切看起来都不错,除了 þ 字符,这是 DC4 字符的读取方式。
Column names are þIdentifierþ, þColumn 2þ, þColumn 3þ
þXX_0012345þ works in the þRandom Data 1þ department, and was born in þRandom Data 1þ.
þXX_0012346þ works in the þRandom Data 6þ department, and was born in þRandom Data 2þ.
þXX_0012347þ works in the þRandom Data 1þ department, and was born in þRandom Data 3þ.
þXX_0012348þ works in the þRandom Data 8þ department, and was born in þRandom Data 4þ.
þXX_0012349þ works in the þRandom Data 1þ department, and was born in þRandom Data 5þ.
þXX_0012345þ works in the þRandom Data 9þ department, and was born in þRandom Data 1þ.
Processed 7 lines.
对此的任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: python python-import csv control-characters