请写一段python脚本,要求如下: 1脚本.每次运行时检测某一文件夹及其子文件夹下与上次运行相比是否有文件新增,如果有,将此文件名打印出来,如果没有,打印-1
时间: 2024-02-20 21:00:26 浏览: 18
好的,我们可以使用`pickle`模块来保存上次运行时的文件信息,以便下次运行时进行比对。
下面是完整的代码实现:
```python
import os
import time
import pickle
def check_folder(folder_path):
files = {}
if os.path.exists("files.pickle"):
with open("files.pickle", "rb") as f:
files = pickle.load(f)
new_files = {}
for dirpath, dirnames, filenames in os.walk(folder_path):
for filename in filenames:
file_path = os.path.join(dirpath, filename)
new_files[file_path] = os.path.getmtime(file_path)
added_files = [filename for filename in new_files if filename not in files or new_files[filename] > files[filename]]
if added_files:
print("\n".join(added_files))
with open("files.pickle", "wb") as f:
pickle.dump(new_files, f)
else:
print("-1")
# 测试代码
check_folder("/path/to/folder")
```
需要注意的是,如果文件夹内的文件变化较大,保存文件信息的`pickle`文件可能会变得很大,因此需要定期清理。另外,如果文件夹内的文件数量较大,比对文件可能会比较耗时,影响脚本的运行效率。