title: Many threads to write log file at same time in Python
body: <p>I am writing a script to retrieve WMI info from many computers at the same time then write this info in a text file:</p>
  
  <pre><code>f = open("results.txt", 'w+') ## to clean the results file before the start
  
  
  def filesize(asset):  
      f = open("results.txt", 'a+')  
      c = wmi.WMI(asset)  
      wql = 'SELECT FileSize,Name FROM CIM_DataFile where (Drive="D:" OR Drive="E:") and Caption like "%file%"'  
      for item in c.query(wql):  
          print &gt;&gt; f, item.Name.split("\\")[2].strip().upper(), str(item.FileSize)  
  
  
  
  
  class myThread (threading.Thread):  
      def __init__(self,name):  
          threading.Thread.__init__(self)  
          self.name = name  
      def run(self):  
          pythoncom.CoInitialize ()  
          print "Starting " + self.name       
          filesize(self.name)  
          print "Exiting " + self.name  
  
  
  
  thread1 = myThread('10.24.2.31')  
  thread2 = myThread('10.24.2.32')  
  thread3 = myThread('10.24.2.33')  
  thread4 = myThread('10.24.2.34')  
  thread1.start()  
  thread2.start()  
  thread3.start()  
  thread4.start()
  </code></pre>
  
  <p>The problem is that all threads writing at the same time.</p>