2014-02-11 241 views
2

我可以讀取所有csv文件像這樣的Python:只讀CSV文件,蟒蛇

import glob 
for files in glob.glob("*.csv"): 
    print files 

不過,我只想讀那些剛剛.csv爲後綴的文件。例如 我只會想讀

file.csv,而不是

file.x.csv 

file.x.y.csv 

什麼是做到這一點的好辦法?

+1

用於glob.glob(「*。csv」)文件的變量名'files':'是誤導性的,因爲'files'指單個文件名... – YXD

回答

5

你可以使用count

import glob 
for files in glob.glob("*.csv"): 
    # print all files that contain only .csv 
    if files.count('.') == 1: 
     print files 
+1

Duhhhhhhh !! .... – Ank

+0

很高興我能幫到你。 – jramirez

1

添加保護像

if '.' not in os.path.basename(files)[:-4] 
0

您可以使用在每個字符串的結尾匹配的.csv一個正則表達式,文件名是一個字符串變量最後的.csv。

import re 

if re.search('\.csv', filename): 
    do something 
0

使用filter()和正則表達式。

import glob 
import re 

flt = re.compile(r'^[^.]+\.csv$',re.I) 
for f in filter(flt.match,glob.glob('*.csv')): 
    print(f) 

這裏的正則表達式假定文件名中只有一個句點。您的需求可能需要不同的正則表達式。