2017-08-30 31 views
-1

我有一個python腳本,它讀取文件並從中提取某些數據,然後將數據存儲在字典中,最後將其插入到mysql表中。我的第一行代碼是我在我的文件名請輸入:在多個文件上運行python腳本

filename = "examplelogfile" 

這是一個文本文件,並在後面稱爲「文件名」。但我必須在這種類型的近千個不同的文件上運行這些代碼,並將所有這些文件都移動到了某個服務器上(由於我需要在同一臺服務器上運行它,因此我沒有在終端中運行腳本mysql數據庫所在的位置)。在所有文件上運行我的代碼最簡單的方法是什麼?

編輯:我試過,但它沒有給我任何的輸出(它應該是打印所有字典):

import glob 
files = glob.glob('~/Desktop/pythoncode/*logfile') 
for filename in files: 
    rest of code 
    print dict 
+1

定義沒有'〜'的路徑或在'os.path.expanduser'中使用。 – sKwa

回答

2

嘗試glob模塊來獲取所有的文件是這樣的:

import glob 
path = 'C:/Users/telli/Desktop/Test Shapes/Shapes/Squares' 
filenames = glob.glob(path + '/*.gif') 
for filename in filenames: 
    # Do something 
+0

當我沒有文件擴展名時,通配符方法是否工作?正如我的問題所見,文件名的格式是「somethinglogfile」,但沒有擴展名。 –

+0

是的,它會工作。只要刪除gif。 –

+0

您可以事先使用.endswith()和一小段邏輯來忽略擴展名。編輯:或者只是使用上面提供的答案。 –

相關問題