2016-04-29 3 views
0

У меня есть огромный документ документа Word Document, который содержит более 10 000 строк, и содержит случайные пустые строки, файл, чтобы читать каждую строку в виде строки и запускать мою программу, чтобы вытащить только заголовки fasta и их последовательности.encode issues python word document

Я искал в Интернете и всех сообщений о проблемах с кодировкой, просто сделайте его более запутанным для меня.

до сих пор я попробовал:

1) сохранить файл текстового документа в виде текстового файла с юникодом опцией (UTF-8). и запустил мой код ниже, было выпущено около 1000 строк, пока не получило ошибку.

with open('TemplateMaster2.txt', encoding='utf-8') as fin, open('OnlyFastaseq.fasta', 'w') as fout: 
for line in fin: 
    if line.startswith('>'): 
     fout.write(line) 
     fout.write(next(fin)) 

сообщение об ошибке:

UnicodeEncodeError: 'charmap' codec can't encode chracter '\uf044' in position 11: character maps to <undefined> 

2) сохранить файл текстового документа в текстовый файл с Unicode (опция UTF-8). около 1000 строк были выведены до тех пор, пока не получится другая ошибка.

with open('TemplateMaster2.txt') as fin, open('OnlyFastaseq.fasta', 'w') as fout: 
for line in fin: 
    if line.startswith('>'): 
     fout.write(line) 
     fout.write(next(fin)) 

сообщение об ошибке:

unicodeDecodeError: 'charmap' code can't decode byte 0x81 in position 5664: character map to <undefined> 

Я могу попробовать различные варианты для сохранения этого слова документа в текстовый файл, но есть слишком много вариантов, и я не уверен, что проблема на самом деле. Должен ли я сохранить документ слова как .txt с возможностью «unicode» или «unicode (Big-Endian)» или «unicode (UTF-7)» или «Unicode (UTF-8)» или «US- ASCII 'и т. Д.

+0

Проблема решена или все еще открыта? –

+0

open, я не уверен, почему я получил голосование, я чувствую себя обескураженным, чтобы задавать вопросы сейчас. – Jessica

+0

Сайт посвящен обучению, поэтому не разочаровывайтесь нисходящими голосами. Вы попробовали код ниже? Какую ошибку он дал? –

ответ

1

Единственное, что кажется отсутствующим, - encoding='utf-8' в вашем открытом заявлении для fout.

with open('TemplateMaster2.txt', 'r', encoding='utf-8') as fin, open('OnlyFastaseq.fasta', 'w', encoding='utf-8') as fout: 
    for line in fin: 
     if line.startswith('>'): 
      fout.write(line) 
      seq = next(fin) 
      fout.write(seq) 

Вы дважды проверяли, действительно ли ваши последовательности выполняются каждый раз только в одной строке?