2017-08-30 48 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()和一小段逻辑来忽略扩展名。编辑:或者只是使用上面提供的答案。 –