在代码刷新时,我们如何从python中的源文件夹读取和索引动态生成文件,并在文件夹中添加新添加或未读文件的索引?
自动化工具是不断地将文件(例如xlsx)放入源文件夹,然后python程序将从文件夹中的所有文件中读取并绘制一个图表,为了优化代码的性能,我们计划在刷新代码/应用程序后不读取所有文件,而只在索引中附加未读取的文件。
索引可以是局部变量/表,它包含有关输入文件的信息,比如哪些文件已经加载/读取,以便系统知道现在读取哪个文件,哪些文件都已经读取。这样做的目的是只读取一次文件,而不是每次刷新后读取所有文件。
发布于 2018-09-18 06:49:59
下面的代码将帮助您给出新文件名列表及其索引。
使用了这些变量:
当bag_of_file为空时,第一次运行此代码。
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']下一次总是按照代码运行。差别只是在第3行,我们使用的是早期版本的bag_of_files。每次我在同一个文件夹中添加一些新的文件。
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输出:
['Maharashtra Output.csv',
'MP Output.csv',
'Punjab Output.csv',
'Rajsthan Output.csv']再运行一次:)
输出:
['Bihar Output.csv',
'Tamilnadu Output.csv',
'Telangana Output.csv',
'WB Output.csv']发布于 2018-09-18 05:27:10
为了保持简单的回答,您可以使用os.listdir()来监视目录内容。要监视程序已经索引的修改文件,请使用os.stat()检查这些文件的修改时间。
https://stackoverflow.com/questions/52379152
复制相似问题