1. 程式人生 > >Python程式設計之獲取目錄下csv檔名

Python程式設計之獲取目錄下csv檔名

#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
import fnmatch
import time
import re
import winreg

print('* * * * * * * * * * * * * * * * * * * * * * * * * * * * *')
print('---------------檔案型別輸入格式為:*.XXX-----------------')
print('----------檔案型別輸入*表示顯示目錄下所有檔案------------')
print('------------檔案路徑格式電腦檔案路徑顯示方式-------------'
) print('------------------例如:C:\Desktop-----------------------\n------------------------*.csv----------------------------') print('------------指令碼執行後所產生的資料將新建一個CSV資料夾存放在桌面上-------------') print('* * * * * * * * * * * * * * * * * * * * * * * * * * * * *') class FindFiles: def __init__(self, path,
type_str): if path is '': self.path = 'C:\Desktop' else: self.path = path if type_str is '': self.type_str = '*.csv' else: self.type_str = type_str def get_desktop(self): key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
) # 利用系統的連結串列 return winreg.QueryValueEx(key, "Desktop")[0] # 返回的是Unicode型別資料 def filePath(self): filelist = [] fndatalist = [] localtime = time.strftime('%Y_%m_%d %H:%M:%S', time.localtime(time.time())) # 顯示當地時間 print(localtime) print('PATH:%s FilesType:%s' % (self.path, self.type_str)) Desktop_path = str(self.get_desktop()) mkpath = Desktop_path + '\CSV\NewData' if os.path.exists(mkpath) is False: # 判斷一個目錄是否存在 os.mkdir(mkpath + '\\') # 建立目錄,用於存放處理後的資料 fo = open(mkpath+'\\'+'listfile.txt', 'wb') # fo.write(localtime + "\r\n") fnlist = os.walk(self.path) for root, dirs, files in fnlist: pass if self.type_str == '*.csv': for i in fnmatch.filter(files, self.type_str): filelist.append(i) print len(filelist) filelist.sort(key=len) print len(filelist) for fnitem in filelist: fo.write(fnitem + '\r\n') # 寫入的是檔名 for allfilename in filelist: fn = '%s/%s' % (root, allfilename) fn = fn.replace('/', '\\') fndatalist.append(fn) return filelist fo.close() if __name__ == '__main__': root = raw_input('PATH:')type_str = raw_input('FilesType(default:*.csv):') a = FindFiles(root, type_str)filenamelist = a.filePath() print(filenamelist) input('Please ENTER to END')#這裡的輸入無意義,主要是為了不讓控制檯閃退