1

I am converting one file format into another file format by creating a temporary intermediate file. Following are my codes:

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()

However, codes are generating the error-EmptyDataError: No columns to parse from file.

Maulik Upadhyay
  • 127
  • 1
  • 12

1 Answers1

3

Try this - it will return to the top of the file:

file.seek(0)
Mihkorz
  • 824
  • 7
  • 6