I want to open the main folder containing all files (1), search though the files and only grab any .txt file with "mtn" in the title (2), print a the list of txt files (3) then list the txt files in a csv file, including their full path (4).
I can do (1) through (3) with my current code, however the CSV file that gets produced only contains the last filename, so I think there is something wrong with the order of my loops
mtnpath = r"G:\somepath\"
num_files = 0
for root, dirs, files in os.walk(mtnpath):
for filename in files:
if fnmatch.fnmatch(filename, '*mtn*'):
num_files = num_files + 1
with open(mtnpath + "/" + "txt_file_list.csv", 'w+', newline='') as f:
thewriter = csv.writer(f)
# write the header row
thewriter.writerow(['Filename', 'Path', ])
# write the rest of the rows with files and path
thewriter.writerow([filename, 'Path', ])
print(filename)
print("The total number of mtn files found was " + str(num_files))
In the console I get a running list of the filenames and the statement at the end with the 565 files found. The CSV file should have all of those files listed but only has the last one.
I tried indenting another for
loop under the header:
for filename in files:
thewriter.writerow([filename, 'Directory', ])
but that doesn't work either.