功能:查找硬盘重复文件并询问是否清理
思考:人与机器沟通的门槛越来越低,人只需要把想法/需求提给 ai 立刻可以获得想要的结果,完全不需要自己思考写代码,“程序员”或许会消失,取而代之的是“AI 对接员”
ai 代码:
import os
import hashlib
def hash_file(file_path):
"""计算文件的哈希值"""
hasher = hashlib.md5() # 可以使用其他哈希函数
with open(file_path, 'rb') as f:
while chunk := f.read(8192):
hasher.update(chunk)
return hasher.hexdigest()
def find_duplicates(root_folder):
"""查找重复文件"""
hashes = {}
duplicates = []
for dirpath, _, filenames in os.walk(root_folder):
for filename in filenames:
file_path = os.path.join(dirpath, filename)
file_hash = hash_file(file_path)
if file_hash in hashes:
duplicates.append((file_path, hashes[file_hash]))
else:
hashes[file_hash] = file_path
return duplicates
def main():
# 指定搜索的根目录,例如 C:\ 或者其他驱动器
root_folder = input("请输入要搜索的根目录(例如 C:\\):")
duplicates = find_duplicates(root_folder)
if not duplicates:
print("未找到重复文件。")
return
print("找到的重复文件:")
for i, (file1, file2) in enumerate(duplicates):
print(f"{i + 1}: {file1}\n {file2}")
# 删除选择
while True:
choice = input("请输入要删除的文件编号(或者输入 'q' 退出):")
if choice.lower() == 'q':
break
try:
index = int(choice) - 1
if 0 <= index < len(duplicates):
file_to_delete = duplicates[index][0]
os.remove(file_to_delete)
print(f"已删除文件: {file_to_delete}")
duplicates.pop(index) # 从列表中移除已删除的项
else:
print("无效的编号。")
except ValueError:
print("请输入有效的编号。")
if __name__ == "__main__":
main() |
|