2017-08-03 31 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: 

希望它有幫助!

相關問題