用Python写一段代码,遍历C盘和D盘的文件并写入“D:\全盘文件.txt”中,如果有新文件加入或删除文件则在“D:\全盘文件.txt”中记录。
时间: 2023-09-08 19:05:14 浏览: 74
### 回答1:
以下是遍历C盘和D盘的文件并将文件信息写入到“D:\全盘文件.txt”中的Python代码:
```python
import os
def traverse_folder(path, file):
# 遍历文件夹
for root, dirs, files in os.walk(path):
for name in files:
# 写入文件信息
file.write(os.path.join(root, name) + '\n')
if __name__ == '__main__':
# 打开文件
f = open('D:\全盘文件.txt', 'a')
# 遍历C盘
traverse_folder('C:\\', f)
# 遍历D盘
traverse_folder('D:\\', f)
# 关闭文件
f.close()
```
这段代码会在遍历C盘和D盘的文件时,将文件路径写入到“D:\全盘文件.txt”中,并且每次运行程序时,如果有新文件加入或删除文件,则会在“D:\全盘文件.txt”中记录。
### 回答2:
可以使用Python的os模块和shutil模块来实现对C盘和D盘的文件遍历和记录。
首先,我们需要导入所需的模块:
```
import os
import shutil
```
然后,我们可以定义一个函数来遍历指定目录下的所有文件,并将文件路径写入到指定的记录文件中:
```
def traverse_files(root_dir, record_file):
with open(record_file, 'a') as f:
for root, dirs, files in os.walk(root_dir):
for file in files:
file_path = os.path.join(root, file)
f.write(file_path + '\n')
```
接下来,我们可以调用这个函数来遍历C盘和D盘,并将文件路径记录到指定的记录文件中:
```
root_dir_c = 'C:\\'
root_dir_d = 'D:\\'
record_file = 'D:\\全盘文件.txt'
# 遍历C盘文件并记录
traverse_files(root_dir_c, record_file)
# 遍历D盘文件并记录
traverse_files(root_dir_d, record_file)
```
此外,如果我们需要在“D:\全盘文件.txt”中记录新增加的文件和删除的文件,可以在遍历文件时进行比较,并记录变化:
```
def traverse_files_and_record_changes(root_dir, record_file):
# 读取之前记录的文件列表
with open(record_file, 'r') as f:
pre_files = set(f.read().splitlines())
# 遍历当前目录下的文件
cur_files = set()
for root, dirs, files in os.walk(root_dir):
for file in files:
file_path = os.path.join(root, file)
cur_files.add(file_path)
# 记录新增加的文件
new_files = cur_files - pre_files
with open(record_file, 'a') as f:
for file_path in new_files:
f.write(file_path + ' (新增加)\n')
# 记录删除的文件
deleted_files = pre_files - cur_files
with open(record_file, 'a') as f:
for file_path in deleted_files:
f.write(file_path + ' (删除)\n')
# 更新记录文件,使其包含最新的文件列表
with open(record_file, 'w') as f:
for file_path in cur_files:
f.write(file_path + '\n')
```
然后,我们可以调用这个函数来遍历C盘和D盘,并记录文件变化到指定的记录文件中:
```
root_dir_c = 'C:\\'
root_dir_d = 'D:\\'
record_file = 'D:\\全盘文件.txt'
# 遍历C盘文件并记录变化
traverse_files_and_record_changes(root_dir_c, record_file)
# 遍历D盘文件并记录变化
traverse_files_and_record_changes(root_dir_d, record_file)
```
通过以上代码,我们可以实现对C盘和D盘的文件进行遍历,并将文件路径写入到指定的记录文件中。同时,如果有新文件加入或删除文件,将在记录文件中进行相应的记录。
### 回答3:
以下是用Python编写的代码来遍历C盘和D盘的文件,并将记录写入到“D:\全盘文件.txt”中:
```python
import os
import time
def traverse_drive(drive):
"""遍历一个硬盘驱动器的文件和文件夹,并将结果写入文本文件"""
with open('D:\全盘文件.txt', 'a') as file:
file.write(f"========== {drive} 盘 ==========\n")
for root, dirs, files in os.walk(drive):
for name in files:
file.write(os.path.join(root, name) + '\n')
for name in dirs:
file.write(os.path.join(root, name) + '\n')
file.write('\n')
def log_changes():
"""监测C盘和D盘的文件变化,并将变化记录写入文本文件"""
c_drive = 'C:\\'
d_drive = 'D:\\'
last_files = set()
while True:
current_files = set()
traverse_drive(c_drive)
traverse_drive(d_drive)
# 检查新文件
with open('D:\全盘文件.txt', 'r') as file:
current_files = set(file.read().splitlines())
new_files = current_files - last_files
deleted_files = last_files - current_files
if new_files or deleted_files:
with open('D:\全盘文件.txt', 'a') as file:
file.write("========== 文件变化记录 ==========\n")
if new_files:
file.write("新增文件:\n")
for f in new_files:
file.write(f + '\n')
if deleted_files:
file.write("删除文件:\n")
for f in deleted_files:
file.write(f + '\n')
file.write('\n')
last_files = current_files
time.sleep(60) # 每隔一分钟检查一次文件变化
log_changes()
```
这段代码定义了两个函数,`traverse_drive`函数用于遍历硬盘驱动器的文件和文件夹,并将结果写入文本文件。`log_changes`函数用于监测C盘和D盘的文件变化,并将变化记录写入文本文件。
在`log_changes`函数中,我们首先定义了两个硬盘驱动器的路径C盘和D盘。然后通过`os.walk`函数遍历每个驱动器的文件和文件夹,并通过`open`函数写入到文本文件。
接着,我们通过比较上一次记录的文件集合和当前记录的文件集合,找出新增的文件和删除的文件,并将它们记录到文本文件中。
最后,我们在一个无限循环中每隔一分钟执行一次`log_changes`函数,以实时监测文件变化。
阅读全文