要检查一个文件夹中所有Word文件的内容是否重复,你可以使用Python的python-docx
库来读取Word文件的内容,并使用Python的集合数据结构来检查重复项。
以下是一个示例代码,演示如何实现这个功能:
python复制代码
import os |
|
from docx import Document |
|
def get_word_files(directory): |
|
"""获取指定目录下的所有Word文件""" |
|
word_files = [] |
|
for filename in os.listdir(directory): |
|
if filename.endswith('.docx') or filename.endswith('.doc'): |
|
word_files.append(os.path.join(directory, filename)) |
|
return word_files |
|
def get_file_contents(file): |
|
"""读取Word文件内容并返回文本列表""" |
|
doc = Document(file) |
|
contents = [paragraph.text for paragraph in doc.paragraphs] |
|
return contents |
|
def check_duplicates(word_files): |
|
"""检查Word文件内容是否有重复""" |
|
seen = set() # 用于存储已见过的内容 |
|
duplicates = [] # 用于存储重复的内容 |
|
for file in word_files: |
|
contents = get_file_contents(file) |
|
content_hash = hash(tuple(contents)) # 将内容转换为哈希值以便快速比较 |
|
if content_hash in seen: |
|
duplicates.append(file) # 发现重复内容,记录文件名 |
|
else: |
|
seen.add(content_hash) # 添加哈希值到已见过集合中 |
|
return duplicates # 返回包含重复内容的文件名列表 |
|
# 示例用法:检查指定目录下的所有Word文件内容是否重复 |
|
directory = 'path/to/your/directory' # 替换为你的目录路径 |
|
word_files = get_word_files(directory) |
|
duplicates = check_duplicates(word_files) |
|
print("重复内容的文件:", duplicates) |
请注意,这个示例代码使用了python-docx
库来读取Word文件的内容。如果你还没有安装这个库,可以使用以下命令来安装:
bash复制代码
pip install python-docx |