2017-08-03 32 views
0

我试图让该程序使用文件夹内的所有CSV文件。该文件夹在我的桌面上,它被称为“Web_Scraper”(我在Mac btw上)。使用文件夹中的每个CSV文件

这是代码的外观;我应该用(1.csv,2.csv,3.csv等)替换“enumerate”中的任何内容吗?

from openpyxl import Workbook 
import csv 
import os 

wb = Workbook() 
ws = wb.worksheets[0] 

header_keys = [] 
for n, fName in 

enumerate(['3.csv','4.csv','5.csv','6.csv','7.csv','8.csv','9.csv','10.csv','11.csv','12.csv',]): 
with open(fName) as fh: 
    csv_reader = csv.DictReader(fh, fieldnames=['header', 'data'], delimiter=',') 
    if n == 0: 
     for values in csv_reader: 

我想我应该使用类似os.listdir的东西,但我并不确定语法应该是什么。

+0

这是什么问题btw?请提到 – Mandy8055

+0

顺便说一句,你也可以使用glob.glob('*。csv') – user1427026

+0

可能的重复[如何列出目录的所有文件?](https://stackoverflow.com/questions/3207219/how -do -i-list-all-files-of-a-directory) – user1427026

回答

1

你可以把glob模块

import glob 

scraper_files = glob.glob('*.csv') //returns an array of filenames 
0

您可以使用os模块

import os 
os.listdir('~/Desktop/Web_Scraper') # Returns list of files or directory names inside that dir 

的优势,你可以申请对文件扩展名过滤器过滤出的CSV文件

1

你可以用下面的东西,

import os 
from pathlib import Path 

rootdir = 'xx/xx/x' 

for subdir, dirs, files in os.walk(rootdir): 
    for file in files: 
     if ('.csv' in Path.suffix) 
      csv_reader = csv.DictReader(file, fieldnames=['header', 'data'], delimiter=',') 
0

您可以使用python的内置os模块。

import os 
os.listdir("this-directory") # returns list of files in this-directory 

例如,

import os 
for file in os.listdir("."): # reading from current directory, replace it with your directory. 
    if file.endswith(".csv"): 
     with open(file) as fh: 
      csv_reader = csv.DictReader(fh, fieldnames=['header', 'data'], delimiter=',') 
       if n == 0: 
        for values in csv_reader: 

希望它有帮助!

相关问题