Find_Excel_From_Dir GET、特定のディレクトリにスプレッドシートをエクセルからデータをコピーします

  。1  - * -コーディング:UTF-8 - * - 
  2  -主なアイデア-ログファイルは、パッケージの抽出取得
  3  #を-データをコピーし、特定のディレクトリの下の表をエクセル取得
  4。 インポート  xdrlib、SYSを
   5。 インポートxlrdします
   6  インポートOS
   7  インポート時間
   8  クラスSearch_Excel_From_Dir:
   9      ここ= "例" OK#file_nameには、ファイル名を検索する
10      Bdc_Csv_list = [] リストExcelのファイルを
11      Bdc_Csv_Dir_list = [] リストExcelファイル・ディレクトリの
12      このカスタムファイルタイプを分析することで、テーブルの種類の関数ではない
13で     DEFIsExcel(セルフ、ファイル):
 14          圧縮= [ " の.xlsx "" .CSV " ]
 15          用の Z 圧縮:
 16              IF file.endswith(Z):#1 説明:かどうかを指定した文字列またはサブストリングを決定します。終了
17。                 リターン18は         戻り19。 
20      ubp_bdc_01テーブルファイルか否かを判断
21である     DEF IsBdcCsvFile(自己ファイル名):
 22である          [DIRNAME、ファイル名が= os.path.split(filename)で
 23である          BdcFiles SET =([ " ubp_bdc01_info" ])
 24          のための namefile BdcFiles:
 25              IF namefile ファイル名:
 26                  リターン真の
 27              28                  インクルード続行
29          リターン30      
31      次のExcelのすべてのファイルを再帰的なビューフォルダを
32      DEF FindBDCCsvFile(セルフ、fileDirPath):
 33          =ファイル名os.listdir(fileDirPath)
 34がある         ため、ファイルファイル名:
 35              filePathに= STR(fileDirPath)+ " \\" + STR(ファイル)
 36              IF os.path.isdir(filePathに):
 37 [                  self.FindBDCCsvFile(filePathに)が
 38である             のelif os.path.isfile(filePathに):
 39                  BDCは、ログファイルは、検査のために必要か否かを判断しますそれは、ファイルタイプがタイプエクセルであるか否かを判断しながら、
40は                 IF真self.IsBdcCsvFile(filePathに)==  self.IsExcel(filePathに)== :真は
 41                      中に入るためにここに絶対パス名Excelはファイル名のリストにファイルを追加します。
42                      セルフ.Bdc_Csv_list.append(filePathに)
 43である                      [DIRNAME、ファイル名] = os.path.split(filePathに)
 44である                     #はフォルダパスリストの内側にここでフォルダのExcelへのパスを追加する
45                     self.Bdc_Csv_Dir_list.append(DIRNAME)
 46は、                 47は                     続行
48を             、他49は                 続行
50  
51である     特定のディレクトリを取得するためにExcelの表:
52      1は、指定されたディレクトリに入り
53      2をExcelがファイルを取得
54      すべて3.印刷をディレクトリ・ファイルと
55      DEF Find_Excel(自己ファイルパス):
 56れる          [DIRNAME、ファイル名] = os.path.split(filePathに)
 57である          (DIRNAME)os.chdir os.chdir()メソッドは、現在の作業ディレクトリを変更するために使用され:指定されたパスは、パスが「\ログ検査ストレージパスD」である
58          パス= os.getcwd() os.getcwd()メソッドは、現在の作業ディレクトリを返し、作業ディレクトリ「D:\検査ログ保存パス」
59          file_names os.listdir =(./ os.listdir()メソッドは、指定を返しますフォルダが含まれているファイルやフォルダの名前をリストアップ。このリストは、アルファベット順にあります。
60                                       には含まれていません「」と「..」それがフォルダ内にあるにもかかわらず。これは、Unix、Windowsでのみ使用することをサポートしています。
61である         ため、I レンジ(LEN(file_names)):
 62は、             IF self.IsBdcCsvFile(file_names [I])== TRUE:
 63である                プリント(file_names [I])
 64         
65      DEF 実行(自己):
 66          self.FindBDCCsvFile(D :\ ERD広東検査ログ67          のための I範囲(0、LEN(self.Bdc_Csv_list)):
 68              self.open_excel(self.Bdc_Csv_list [i])と
69              プリント(self.Bdc_Csv_list [I])
70              self.Find_Excel(self.Bdc_Csv_list [i])と
 71              戻りself.Bdc_Csv_listが
 72              #のプリント(self.Bdc_Csv_Dir_list [I])
73  
74  ''」       
75      #打开エクセル文件
 76      デフopen_excel(自己、file_csv):
 77          試み:
 78件の             データ= xlrd.open_workbook(file_csv)
 79の             リターンデータ
 80          例外IOError除い:
 81             プリント( "ファイルAPOS名を確認")
 82の     
83      #取得したデータパラメータのExcelテーブル名によって:ファイル:エクセルファイルパスcolnameindex:カラムヘッダ名インデックス列、by_name:シート1タイトル
 84      DEFのexcel_table_byname(FILE =「例.xlsx 'colnameindex = 0、= u'Sheet1 by_name'):
 85          データ= open_excel(ファイル)が開いているファイル番号をエクセル
 86          表data.sheet_by_name =(by_name)#を得たシート名に係るシートをエクセル
 87          NROWS =表.nrows#行は
 88          COLNAMESの=のtable.row_values(colnameindex)データ線#
 89          リスト= []配列番号の読み取り結果手段
 90          #の各ライン横断:範囲でROWNUMのための(0、NROWS)
 91である             行を=行番号の取得に応じtable.row_values(ROWNUM)#ライン
 92             もし行:行が存在する場合は#
 93                  アプリ= []#線コンテンツ
 94                  の範囲内のiについて(LEN(COLNAMES)):カラム読み出し線コンテンツ#
 95                      app.append(行[I])
 96                  リスト。追加(APP)#負荷データ
 97          #Print(リスト)
 98          リターンリスト
 99  '' ' 
100      
101  
102      ' ubp_bdc01_info.csv '

 

おすすめ

転載: www.cnblogs.com/dog-and-cat/p/11613817.html