Opening Multiple files at one time

Felix Dietrich felix.dietrich at sperrhaken.name
Mon Apr 20 14:14:00 EDT 2015


subhabrata.banerji at gmail.com writes:

> Dear Group,
>
> I am trying to open multiple files at one time. 
> I am trying to do it as,
>
>  for item in  [ "one", "two", "three" ]:
>        f = open (item + "world.txt", "w")
>        f.close()
>
> This is fine. But I was looking if I do not know the number of
> text files I would create beforehand, so not trying xrange option
> also.
>
> And if in every run of the code if the name of the text files have
> to created on its own.
>
> Is there a solution for this? 

I have trouble comprehending your question so I am going to guess a bit
– feel free to clarify your problem.

If you want to repeat a set of commands not for a certain number of
items but based on a condition take a look at the *while-loop*.  The
basic loop construct looks like this:

  while condition:
    do_stuff()

Now the problem: *While* your program still has stuff to do (you have to
come up with an appropiate condition) you want to write output to files.
The filenames will be a concatenation of a number counting the already
created files and a predifined string (say "world.txt").

(Is this a correct description of your problem? Again: feel free to
clarify.)

The following lines might get you closer to a solution:


  j = 1
  continue_to_open_files = True
  while continue_to_open_files:
    with open("%03iworld" % j, "w") as f:
      f.write("some content")
    if some_condition:
      continue_to_open_files = False
    j += 1


Alternativly /itertools.count/ allows using of the for-loop:

  import itertools
  for j in itertools.count(1):
    with open("%03iworld" % j, "w") as f:
      f.write("some content")
    if some_condition:
      break


Translating numbers represented by digits into words is another problem.

--
Felix Dietrich



More information about the Python-list mailing list