En Fri, 13 Feb 2009 05:43:02 -0200, brianrpsgt1 <brianl...@cox.net>
escribió:
On Feb 12, 11:02 pm, "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
wrote:
En Fri, 13 Feb 2009 04:44:54 -0200, brianrpsgt1 <brianl...@cox.net>
escribió:
> New to python.... I have a large file that I need to break upinto
> multiple smallerfiles. I need to break the large fileintosections
> where there are 65535 lines and then write thosesectionsto seperate
>files. I am familiar with opening and writingfiles, however, I am
> struggling with creating thesectionsand writing the different
>sectionsto their ownfiles.
This function copies at most n lines from fin to fout:
def copylines(fin, fout, n):
for i, line in enumerate(fin):
fout.write(line)
if i+1>=n: break
Now you have to open the source file, create newfilesas needed and
repeatedly call the above function until the end of source file. You'll
have to enhace it bit, to know whether there are remaining lines or not.
--
Gabriel Genellina
Gabriel ::
Thanks for the direction. Do I simply define fin, fout and n as
variables above the def copylines(fin, fout, n): line?
Would it look like this?
fin = open('C:\Path\file')
fout = 'C:\newfile.csv')
n = 65535
Warning: see this FAQ entry
http://www.python.org/doc/faq/general/#why-can-t-raw-strings-r-strings-end-with-a-backslash
def copylines(fin, fout, n):
for i, line in enumerate(fin):
fout.write(line)
if i+1>=n: break
Almost. You have to *call* the copylines function, not just define it.
After calling it with: copylines(fin, fout, 65535), you'll have the
*first* chunk of lines copied. So you'll need to create a second file,
call the copylines function again, create a third file, call... You'll
need some kind of loop, and a way to detect when to stop and break out of
it.
The copylines function already knows what happened (whether there are more
lines to copy or not) so you should enhace it and return such information
to the caller.
It isn't so hard, after working out the tutorial (linked from
http://wiki.python.org/moin/BeginnersGuide ) you'll know enough Python to
finish this program.
If you have some previous programming experience, Dive into Python (linked
from the Beginners Guide above) is a good online book.
Feel free to come back when you're stuck with something.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list