如何在python中读取和索引动态生成的文件

如何在python中读取和索引动态生成的文件,python,python-3.x,Python,Python 3.x,我们如何在python中读取和索引从源文件夹动态生成的文件,并在代码刷新时将新添加或未读的文件附加到文件夹中的索引 自动化工具不断地将文件(比如xlsx)放入源文件夹,python程序将从文件夹中的所有文件中读取并绘制图形,以优化代码的性能,我们计划在刷新代码/应用程序后不读取所有文件,而只使用未读文件附加索引 索引可以是一个局部变量/表,其中包含有关输入文件的信息,例如哪些文件已经加载/读取,以便系统知道现在要读取哪些文件,哪些文件已经读取。其思想是只读取一次文件,而不是每次刷新后读取所有文件

我们如何在python中读取和索引从源文件夹动态生成的文件,并在代码刷新时将新添加或未读的文件附加到文件夹中的索引

自动化工具不断地将文件(比如xlsx)放入源文件夹,python程序将从文件夹中的所有文件中读取并绘制图形,以优化代码的性能,我们计划在刷新代码/应用程序后不读取所有文件,而只使用未读文件附加索引


索引可以是一个局部变量/表,其中包含有关输入文件的信息,例如哪些文件已经加载/读取,以便系统知道现在要读取哪些文件,哪些文件已经读取。其思想是只读取一次文件,而不是每次刷新后读取所有文件。

为了简单起见,您可以使用监视目录内容。要查看程序已编制索引的已修改文件,请使用检查这些文件的修改时间。

以下代码将帮助您提供带有索引的新文件名列表

使用以下变量:

  • bag_of_file:已进行的文件名的内容列表
  • curr_files:源文件夹中文件名的内容列表
  • 新建文件:您感兴趣的文件名的内容列表
当您的包文件为空时,第一次运行此代码

import os
curr_dir = "D:/2018/Address Matching/Data/Statewise Output/"
bag_of_files = [] #Comment out this line after using 1st time
curr_files = os.listdir(curr_dir)
new_files = []
for file in curr_files:
    if file not in bag_of_files:
        new_files.append(file)
        bag_of_files.append(file)

new_files
输出:

['AP Output.csv',
'Delhi Output.csv',
'Gujrat Output.csv',
'Haryana Output.csv',
'Jharkhand Output V1.csv',
'Jharkhand Output V1.xlsx',
'Jharkhand Output.csv',
'Karnataka Output.csv']
['Maharashtra Output.csv',
 'MP Output.csv',
 'Punjab Output.csv',
 'Rajsthan Output.csv']
['Bihar Output.csv',
 'Tamilnadu Output.csv',
 'Telangana Output.csv',
 'WB Output.csv']
下次总是运行下面的代码。区别仅在第3行中,我们使用了以前版本的bag_of_文件。每次我在同一个文件夹中添加一些新文件时

curr_dir = "D:/2018/Address Matching/Data/Statewise Output/"
#bag_of_files = [] #Comment out this line after using 1st time
curr_files = os.listdir(curr_dir)
new_files = []
for file in curr_files:
    if file not in bag_of_files:
        new_files.append(file)
        bag_of_files.append(file)
new_files
输出:

['AP Output.csv',
'Delhi Output.csv',
'Gujrat Output.csv',
'Haryana Output.csv',
'Jharkhand Output V1.csv',
'Jharkhand Output V1.xlsx',
'Jharkhand Output.csv',
'Karnataka Output.csv']
['Maharashtra Output.csv',
 'MP Output.csv',
 'Punjab Output.csv',
 'Rajsthan Output.csv']
['Bihar Output.csv',
 'Tamilnadu Output.csv',
 'Telangana Output.csv',
 'WB Output.csv']
再次运行:)

输出:

['AP Output.csv',
'Delhi Output.csv',
'Gujrat Output.csv',
'Haryana Output.csv',
'Jharkhand Output V1.csv',
'Jharkhand Output V1.xlsx',
'Jharkhand Output.csv',
'Karnataka Output.csv']
['Maharashtra Output.csv',
 'MP Output.csv',
 'Punjab Output.csv',
 'Rajsthan Output.csv']
['Bihar Output.csv',
 'Tamilnadu Output.csv',
 'Telangana Output.csv',
 'WB Output.csv']

“索引”是什么意思?索引可以是一个局部变量/表,其中包含有关输入文件的信息,例如哪些文件已经加载/读取,以便系统知道现在要读取哪些文件,哪些文件已经读取。其思想是只读取一次文件,而不是每次刷新后读取所有文件。您可以维护一个日志文件,其中包含已处理文件的文件名,并在处理文件之前读取此日志文件,以检查是否已处理该文件