Python: Как импортировать CSV-подобный файл данных с разделителем управляющих символов - PullRequest
0 голосов
/ 08 марта 2019

У меня есть файл данных, в котором в качестве разделителя используется управляющий символ 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.')

Как видите, символ отображается в виде рамки, и пока только блокнот ++ можетпрочитай это.Я нашел curses.ascii.isctrl (c), который может читать этот символ через python, а затем читать его как каретку?(https://docs.python.org/3.2/library/curses.ascii.html)

Я новичок в кодировании и не уверен, как я мог бы реализовать это, или даже если это будет работать для меня. Ниже приведен пример файла данных, который я пытаюсь прочитать в тексте иснимок экрана.

þ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þ

Текстовый файл для просмотра управляющего символа DC4

Это вывод при использовании этого кода на 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.

Любая помощь по этому вопросу будет принята. Спасибо!

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Оказывается, это проблема моего компьютера, а не Python.Видимо, я не могу просмотреть этот символ, он отображается только в виде белого поля.Есть ли способ отредактировать windows 10 для отображения этого символа

0 голосов
/ 08 марта 2019

Для этого вы можете использовать escape-символ. DC4 - это 20 (0x14)

csv_reader = csv.reader(csv_file, quotechar='þ', delimiter='\x14')
...