python noob, multiple file i/o
lrahuel.notgood at voila.fr
Fri Mar 16 13:09:07 CET 2007
Maybe the walk method in os module is what you need
Jon Clements wrote:
> On 16 Mar, 09:02, "Jon Clements" <jon... at googlemail.com> wrote:
>> On 16 Mar, 03:56, "hiro" <Nun... at gmail.com> wrote:
>> > Hi there,
>> > I'm very new to python, the problem I need to solve is whats the "best/
>> > simplest/cleanest" way to read in multiple files (ascii), do stuff to
>> > them, and write them out(ascii).
>> > --
>> > import os
>> > filePath = ('O:/spam/eggs/')
>> > for file in os.listdir(filePath): #straight from docs
>> > # iterate the function through all the files in the directory
>> > # write results to separate files <- this is where I'm mostly
>> > stuck.
>> > --
>> > For clarity's sake, the file naming conventions for the files I'm
>> > reading from are file.1.txt -> file.nth.txt
>> > It's been a long day, i'm at my wits end, so I apologize in advance if
>> > I'm not making much sense here.
>> > syntax would also be great if you can share some recipes.
>> I'd try the glob module.
>> import glob
>> # Get a list of filenames matching wildcard criteria
>> # (note that path is relative to working directory of program)
>> matching_file_list = glob.glob('O:/spam/eggs/*.txt')
>> # For each file that matches, open it and process it in some way...
>> for filename in matching_file_list:
>> infile = file(filename)
>> outfile = file(filename + '.out','w')
>> # Process the input file line by line...
>> for line in infile:
>> pass # Do something more useful here, change line and write to
>> # Be explicit with file closures
>> Of course, you can change the wild card criteria in the glob
>> statement, and also then filter further using regular expressions to
>> choose only files matching more specific criteria. This should be
>> enough to get you started though.
>> Jon.- Hide quoted text -
>> - Show quoted text -
> Okies; postcoding before finishing your early morning coffee is not
> the greatest of ideas!
> I forgot to mention that glob will return pathnames as well. You'll
> need to check that os.path.isfile(filename) returns True before
> processing it...
More information about the Python-list