2016-11-23 53 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

感谢,它的工作! –