Hi,
I don't know why you are forking shells using os.system. You should
either use system commands to do the job or plain python, but mixing
both should never be an option.
Here is a plain portable python script (using the with statement. Your
python should not be to old)
from __future__ import with_statement
import os
for i in xrange(1, 1001):
os.mkdir('Folder%s' %i)
for j in xrange(1, 51):
with open('Folder%s%sTextFile%s.txt' %(i, os.sep, j), "w") as f:
f.write('TextFile%s.txt' %j)
Here are the results on a ext3 file system
time python test.py
real 0m5.299s
user 0m0.939s
sys 0m3.539s
Regards,
Laurent
venutaurus...@gmail.com a écrit :
On Mar 18, 6:35 pm, Peter Otten <__pete...@web.de> wrote:
venutaurus...@gmail.com wrote:
Hello all,
I've an application where I need to create 50K files spread
uniformly across 50 folders in python. The content can be the name of
file itself repeated 10 times.I wrote a code using normal for loops
but it is taking hours together for that. Can some one please share
the code for it using Multithreading. As am new to Python, I know
little about threading concepts.
This is my requiremnt:
C:\TestFolder....
That folder contains 5 Folders.. Folder1, Folder2, Folder3.....
Folder5
Each folder in turn contains 10 folders:
and Each of those folder contains 1000 text files.
Please let me know if you are not clear.
Thank you,
Venu Madhav.
I've just tried it, creating the 50,000 text files took 17 seconds on my not
very fast machine. Python is certainly not the bottleneck here.
Peter
Really...!!!! I just can't beleive it. I am running my scirpt on an
INTEL Core2duo CPU machine with 2GB of RAM. I've started it two hours
back, but still it is running. This is how my code looks like
def createFiles(path):
m.write(strftime("%Y-%m-%d %H:%M:%S") +" Creating files in the
folder "+path+"\n")
global c
global d
os.chdir (path)
k = 1
for k in range (1,1001):
p = "%.2d"%(k)
FName = "TextFile"+c+"_"+d+"_"+p+".txt"
l =1
for l in range(1 , 11):
os.system ("\"echo "+FName+" >> "+FName+"\"")
l = l +1
k = k+1
MainPath = "C:\\Many_50000_1KB"
try:
os.mkdir (MainPath)
m.write(strftime("%Y-%m-%d %H:%M:%S") +" Created the base directory
\n")
except:
m.write(strftime("%Y-%m-%d %H:%M:%S") +" base directory already
exists\n")
os.chdir (MainPath)
for i in range (1 , 6):
j = 1
c = "%.2d"%(i)
FolderName ="Folder"+c
try:
os.mkdir (FolderName)
m.write(strftime("%Y-%m-%d %H:%M:%S") +" Created the folder
"+FolderName+"\n")
except:
m.write(strftime("%Y-%m-%d %H:%M:%S") +" Folder "+FolderName+"
already exists \n")
os.chdir (FolderName)
path = os.getcwd ()
#createFiles(path)
for j in range ( 1 , 11):
d = "%.2d"%(j)
FolderName = "Folder"+c+"_"+d
try:
os.mkdir (FolderName)
m.write(strftime("%Y-%m-%d %H:%M:%S") +" Created the
folder "+FolderName+"\n")
except:
m.write(strftime("%Y-%m-%d %H:%M:%S") +" the folder
"+FolderName+" exists \n")
os.chdir (FolderName)
path = os.getcwd ()
createFiles(path)
os.chdir ("..")
j = j + 1
os.chdir ("..")
i = i + 1
Can you please let me know where do I have to modify it, to make it
faster.
Thank you,
Venu Madhav
--
http://mail.python.org/mailman/listinfo/python-list