我想从两个csv文件中获取值并将其放在单个CSV文件中。
请在这两个csv文件中引用数据:
CSV 1:
| | Status | P | F | B | IP | NI | NA | CO | U |
|---|----------|----|---|---|----|----|----|----|---|
| 0 | Sanity 1 | 14 | | | | | | 1 | |
| 1 | Sanity 2 | 13 | | 1 | | | | 1 | |
| | | | | | | | | | |
CSV 2:
| | Status | P | F | B | IP | NI | NA | CO | U |
|---|------------|-----|---|---|----|----|----|----|---|
| 0 | P0 Dry Run | 154 | 1 | | | 1 | | | 5 |
| | | | | | | | | | |
| | | | | | | | | | |
代码:我尝试使用以下代码:
filenames = glob.glob ("C:\\Users\\gomathis\\Downloads\\To csv\\*.csv")
wf = csv.writer(open("C:\\Users\\gomathis\\Downloads\\To
csv\\FinalTR.csv",'wb'))
for f in filenames:
rd = csv.writer(open(f,'r'))
next(rd)
for row in rd:
wf.writerow(row)
实际结果:在尝试上面的代码时,我没有从上面的CSV文件中获得这些值。
预期结果:我需要将两个文件添加到单个csv文件中并保存在本地。
修改后的代码:
filenames = glob.glob ("C:\\Users\\gomathis\\Downloads\\To csv\\*.csv") wf = csv.writer(open("C:\\Users\\gomathis\\Downloads\\To csv\\FinalTR.csv",'w')) print(filenames)
for f in filenames:
rd = csv.reader(open(f,'r', newline=''))
next(rd)
for row in rd:
wf.writerow(row)
最新结果:修改代码后得到以下结果。而且我没有得到状态P,F,B等索引。请参考最新结果。
| 0 | P0 Dry Run - 15/02/18 | 154 | 1 | | | 1 | | | 5 | |---|--------------------------------|-----|---|---|---|---|---|---|---| | | | | | | | | | | | | 0 | Sanity in FRA Prod - 15/02/18 | 14 | | | | | | 1 | | | | | | | | | | | | | | 1 | Sanity in SYD Gamma - 15/02/18 | 13 | | 1 | | | | 1 | |
import csv
import glob
dest_fname = "C:\\Users\\gomathis\\Downloads\\To csv\\FinalTR.csv"
src_fnames = glob.glob("C:\\Users\\gomathis\\Downloads\\To csv\\*.csv")
with open(dest_fname, 'w', newline='') as f_out:
writer = csv.writer(fout)
copy_headers = True
for src_fname in src_fnames:
# don't want to overwrite destination file
if src_fname.endswith('FinalTR.csv'):
continue
with open(src_fname, 'r', newline='') as f_in:
reader = csv.reader(f_in)
# header row is copied from first csv and skipped on the rest
if copy_headers:
copy_headers = False
else:
next(reader) # skip header
for row in reader:
writer.writerow(row)
笔记:
open()
的with语句放入自动关闭文件中。newline=''
了传递给Python 3csv.reader
和csv.writer
Python 3中的文件所需的二进制标志。csv.writer
到csv.reader
你从读取文件。copy_headers
标志,以启用从第一个文件复制标头并在此之后跳过从任何文件的标头复制。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句