2016-04-29 70 views
0

我有一個巨大的word文檔文件它有超過10000行,它包含隨機空行和怪異的字符,我想將它保存爲.txt或.fasta文件以字符串的形式讀取每一行,然後運行我的程序來僅取出fasta頭文件和它們的序列。編碼問題python word文檔

我已經在網上搜索,所有關於編碼問題的帖子只是讓我更加困惑。

到目前爲止,我曾嘗試:

1)字文檔文件保存爲使用Unicode(UTF-8)選項.txt文件。並在下面運行我的代碼,輸出了大約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)選項.txt文件。大約有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> 

我可以嘗試不同的選擇保存該Word文檔另存爲.txt文件,但有太多的選擇,我不知道真正的問題是什麼。我應該使用'unicode'或'unicode(Big-Endian)','unicode(UTF-7)','Unicode(UTF-8)'或'US- ASCII'等

+0

問題是解決還是仍然開放? –

+0

開放,我不知道爲什麼我得到了一個投票下來,我感到氣餒,現在提問。 – 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) 

你是否仔細檢查過你的序列是否真的每次都只在一行?