View difference between Paste ID: qNaFxkHE and 7TZuX6HA
SHOW: | | - or go back to the newest paste.
1
import os
2
import glob
3
import csv
4
5
# import csv files from folder and change directory
6
path = r'file_path'
7
os.chdir(path)
8
9
# create list of all files in directory
10
allFiles = glob.glob(path + "/*.csv")
11
12
# read in each file, add filename column
13
with open('output.csv', 'w') as csvoutput:
14
   for i, fname in enumerate(allFiles): 
15
       with open(fname,'r') as csvinput:
16
           if i != 0:
17
               csvinput.readline()
18
           writer = csv.writer(csvoutput, lineterminator='\n')
19
           reader = csv.reader(csvinput)
20
           print(os.path.basename(csvinput.name))
21
           
22
           all = []
23
           row = next(reader)
24
           row.append('FileName')
25
           all.append(row)
26
           
27
           for row in reader:
28
               row.append(os.path.basename(csvinput.name))
29
               all.append(row)
30-
           writer.writerows(all)
30+
           writer.writerows(all)
31
32
File 1:
33
Col1	Col2	Col3
34
A		B		C
35
A		B		C
36
A		B		C
37
A		B		C
38
39
File 2:
40
Col14	Col5	Col6
41
D		E		F
42
D		E		F
43
D		E		F
44
D		E		F
45
46
Current output:
47
Col1	Col2	Col3	FileName
48
A		B		C		file_1.csv
49
A		B		C		file_1.csv
50
A		B		C		file_1.csv
51
A		B		C		file_1.csv
52
D		E		F		FileName  <---- script is not adding filename, but header
53
D		E		F		file_2.csv
54
D		E		F		file_2.csv
55
D		E		F		file_2.csv
56
57
Expected output:
58
Col1	Col2	Col3	FileName
59
A		B		C		file_1.csv
60
A		B		C		file_1.csv
61
A		B		C		file_1.csv
62
A		B		C		file_1.csv
63
D		E		F		file_2.csv
64
D		E		F		file_2.csv
65
D		E		F		file_2.csv
66
D		E		F		file_2.csv