Working around multiple files in a folder

Veek M vek.m1234 at gmail.com
Thu Dec 8 23:13:09 EST 2016


Emile van Sebille wrote:

> On 11/21/2016 11:27 AM, subhabangalore at gmail.com wrote:
>> I have a python script where I am trying to read from a list of files
>> in a folder and trying to process something. As I try to take out the
>> output I am presently appending to a list.
>>
>> But I am trying to write the result of individual files in individual
>> list or files.
>>
>> The script is as follows:
>>
>> import glob
>> def speed_try():
>>      #OPENING THE DICTIONARY
>>      a4=open("/python27/Dictionaryfile","r").read()
>>      #CONVERTING DICTIONARY INTO WORDS
>>      a5=a4.lower().split()
>>      list1=[]
>>      for filename in glob.glob('/Python27/*.txt'):
>>          a1=open(filename,"r").read()
>>          a2=a1.lower()
>>          a3=a2.split()
>>          for word in a3:
>>              if word in a5:
>>                  a6=a5.index(word)
>>                  a7=a6+1
>>                  a8=a5[a7]
>>                  a9=word+"/"+a8
>>                  list1.append(a9)
>>              elif word not in a5:
>>                  list1.append(word)
>>              else:
>>                  print "None"
>>
>>      x1=list1
>>      x2=" ".join(x1)
>>      print x2
>>
>> Till now, I have tried to experiment over the following solutions:
>>
>> a) def speed_try():
>>        #OPENING THE DICTIONARY
>>        a4=open("/python27/Dictionaryfile","r").read()
>>        #CONVERTING DICTIONARY INTO WORDS
>>        a5=a4.lower().split()
>>        list1=[]
>>        for filename in glob.glob('/Python27/*.txt'):
>>           a1=open(filename,"r").read()
>>           a2=a1.lower()
>>           a3=a2.split()
>>            list1.append(a3)
>>
>>
>>      x1=list1
>>      print x1
>>
>> Looks very close but I am unable to fit the if...elif...else part.
>>
>> b) import glob
>> def multi_filehandle():
>>      list_of_files = glob.glob('/Python27/*.txt')
>>      for file_name in list_of_files:
>>          FI = open(file_name, 'r')
>>          FI1=FI.read().split()
>>          FO = open(file_name.replace('txt', 'out'), 'w')
>>          for line in FI:
> 
> at this point, there's nothing left to be read from FI having been
> fully drained to populate FI1 -- maybe you want to loop over FI1
> instead?
> 
> Emile
> 
> 
>>              FO.write(line)
>>
>>          FI.close()
>>          FO.close()
>>
>> I could write output but failing to do processing of the files
>> between opening and writing.
>>
>> I am trying to get examples from fileinput.
>>
>> If anyone of the learned members may kindly suggest how may I
>> proceed.
>>
>> I am using Python2.x on MS-Windows.
>>
>> The practices are scripts and not formal codes so I have not followed
>> style guides.
>>
>> Apology for any indentation error.
>>
>> Thanking in advance.
>>
>>
*goggles in shock* that was painful to read! The best I could make of it 
was, he's trying to match words in some.txt against a dictionary.

(OP) should not code like a horror movie. Try to avoid dismembering your 
variable names and numbering the body parts like a serial killer. 
Instead try to pick names that matter. Use functions to hide the gory 
complexity..

Maybe like this (I dunno what you are doing)..

dict_file = '/python27/Dictionaryfile'
txt_file_path = '/Python27/*.txt'


def open_file(fname, mode='r'):
    lines = open(fname, mode).read()
    words = lines.lower().split()
    return words

def get_files(path):
    file_list = []
    for fname in glob.glob(path):
        file_list.append(fname)

    return file_list


word_list = open_file(dict_file, mode)
file_list = get_files(txt_file_path)


for fname in file_list:
 do something and stick this in a func when you know what you were doing

Otherwise you'll get minimal help online because your program is 
unreadable.. in-spite of the frivolous comments.


More information about the Python-list mailing list