使用Python中实现对指定文件夹中的文件生成一个唯一标识符,存放在test.db数据库中,数据库中存在表se,包含key、ciper、id三列
时间: 2024-04-30 15:22:26 浏览: 11
以下是一个实现示例:
```python
import os
import hashlib
import sqlite3
# 获取文件的MD5值
def get_file_md5(file_path):
md5 = hashlib.md5()
with open(file_path, 'rb') as f:
while True:
data = f.read(1024)
if not data:
break
md5.update(data)
return md5.hexdigest()
# 获取文件夹下所有文件的MD5值,并存入数据库
def generate_md5_for_files_in_folder(folder_path):
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS se (key TEXT PRIMARY KEY, cipher TEXT, id INTEGER)')
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
md5 = get_file_md5(file_path)
cursor.execute('INSERT INTO se (key, cipher, id) VALUES (?, ?, ?)', (file_path, md5, None))
conn.commit()
conn.close()
# 测试
generate_md5_for_files_in_folder('/path/to/folder')
```
这段代码中,`get_file_md5`函数用于计算文件的MD5值,`generate_md5_for_files_in_folder`函数用于遍历指定文件夹下所有文件,并将文件的路径和MD5值存入数据库中。在存入数据库时,我们将文件路径作为唯一标识符(`key`),MD5值作为密文(`cipher`),`id`列暂时为空。最后,我们在函数末尾调用`generate_md5_for_files_in_folder`函数,传入指定的文件夹路径,即可生成唯一标识符并存入数据库中。