2016-11-23 81 views
0

我通過創建臨時中間文件將一種文件格式轉換爲另一種文件格式。以下是我的代碼:EmptyDataError在寫入和從Python中的臨時文件中讀取時

import tempfile 
import pandas as pd 
from pandas import DataFrame 
def convert_binary_step1(file1,file2,file3): 
    source=open(file1) 
    SampleList=convert_file_to_list(file2) 
    dest=open(file3,'w') 
    ti= tempfile.NamedTemporaryFile(delete=False) 
    l=[]  
    for line in source: 
     a=line.split() 
     del a[-1] 
     for i in range(len(SampleList)): 
      if SampleList[i] in a: 
       l.append("1") 
      else: 
       l.append("0") 
    data=a[0]+"\t"+"\t".join(l)+"\n" 
    ti.write(data.encode("utf-8")) 
    del l[:] 
    source1=pd.read_csv(ti,sep="\t",encoding='utf-8',header=None) 
    dest=source1.transpose() 
    dest.to_csv(file3,sep="\t",header=None,index=None) 
    source.close() 
    dest.close() 
    ti.close() 
def convert_file_to_list(file2): 
    source11=open(file2) 
    li=[] 
    for lin in source11: 
     b=lin.split() 
     li+=[b[0]] 
    return li 
    source11.close() 

然而,代碼生成無差錯EmptyDataError:沒有列從文件解析。

回答

1

試試這個 - 它會返回到該文件的頂部:

file.seek(0) 
+0

感謝,它的工作! –