title: TypeError: 'function' object is not iterable
body: <p>Until very recently this piece of code worked. I added a function for prompt the user for a file name and extension, then that didn't work so I resorted back to this version. Now when I try to run it, I get this:</p>
  
  <pre><code>Traceback (most recent call last):
    File "C:/Code/Samples/Dates/2015-06-07/Large-Scale Data Parsing/Parser/Single_File_Multistep_Counter.py", line 53, in &lt;module&gt;
  main()
    File "C:/Code/Samples/Dates/2015-06-07/Large-Scale Data Parsing/Parser/Single_File_Multistep_Counter.py", line 51, in main
  writer(final_counts(intermediate_count))
    File "C:/Code/Samples/Dates/2015-06-07/Large-Scale Data Parsing/Parser/Single_File_Multistep_Counter.py", line 31, in final_counts
  for file_path in intermediate_file_list:
  TypeError: 'function' object is not iterable
  </code></pre>
  
  <p>I'm nor completely sure what the error means, and after researching I could only find <a href="https://stackoverflow.com/questions/17226331/python-object-not-iterable-error-in-function">python object not iterable error in function</a> and <a href="https://stackoverflow.com/questions/22633530/python3-typeerror-function-object-is-not-iterable">python3 TypeError: &#39;function&#39; object is not iterable</a> which do not solve my problem.</p>
  
  <p>Below is the code giving me the error:</p>
  
  <pre><code>def final_counts(intermediate_file_list):
      date_list = {}
      for file_path in intermediate_file_list:
          with open(file_path, "r") as f:
              for line in f:
                  tockens = line.split(",")
                  if tockens[0] in date_list:
                      date_list[tockens[0]] = date_list[tockens[0]] + tockens[1]
                  else:
                      date_list[tockens[0]] = tockens[1]
      return date_list
  </code></pre>
  
  <p>If needed, I will post the full code in a later edit. Any detailed answer explaining what I need to change would be very helpful, I want to learn the language and what I am doing wrong so (hopefully) later I won't make the same mistake.</p>
  
  <p><strong>Edit:</strong> Here is the entirety of my code</p>
  
  <pre><code>import os, glob, csv
  
  location = "C:/Code/Samples/Dates/2015-06-07/Large-Scale Data Parsing/Data Files"
  columnname = "smcn"
  timecolumn = ""
  filetype = ".processed"
  
  def intermediate_count(location, filetype):
      intermediate_file_list = []
      for file_path in list(glob.glob(os.path.join(location, "*" + filetype))):
          date_list = {}
          print file_path
          with open(file_path, 'r') as f:
              for line in f:
                  tockens = line.split(",")
                  key = tockens[9] + "/" + tockens[15][:-4] #replace col_positon to 9 if necessary
                  if key in date_list:
                      date_list[key] = date_list[key] + 1
                  else:
                      date_list[key] = 1
          with open(file_path + ".count", "w") as csv:
              for item in date_list:
                  csv.write(item + "," + str(date_list[item]) + "\n")
          intermediate_file_list.append(file_path + ".count")
      return intermediate_file_list
  
  def final_counts(intermediate_file_list):
      date_list = {}
      for file_path in intermediate_file_list:
          with open(file_path, "r") as f:
              for line in f:
                  tockens = line.split(",")
                  if tockens[0] in date_list:
                      date_list[tockens[0]] = date_list[tockens[0]] + tockens[1]
                  else:
                      date_list[tockens[0]] = tockens[1]
      return date_list
  
  def writer(date_list):
      directory = location + "/" + "Total"
      if not os.path.exists(directory):
          os.makedirs(directory)
      with open(directory + "/" + "Total.processed", "w") as f: # Lots of commas!
          writer = csv.writer(f, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
          for key, value in date_list.items():
              writer.writerow(str([key]) + str(value))
  
  def main():
      writer(final_counts(intermediate_count))
  
  main()
  </code></pre>