首页 > 编程知识 正文

Python对文件做筛选

时间:2023-11-21 06:10:05 阅读:304380 作者:TRLH

本文将从多个方面详细阐述Python如何对文件进行筛选。

一、文件名筛选

1、根据文件名后缀筛选:

import os

def filter_file_by_extension(directory, extension):
    filtered_files = []
    for filename in os.listdir(directory):
        if filename.endswith(extension):
            filtered_files.append(filename)
    return filtered_files

directory = "/path/to/directory"
extension = ".txt"
filtered_files = filter_file_by_extension(directory, extension)
print(filtered_files)

以上代码展示了如何根据文件名后缀筛选文件,可以根据需要修改目录路径和后缀。

2、根据文件名关键字筛选:

import os

def filter_file_by_keyword(directory, keyword):
    filtered_files = []
    for filename in os.listdir(directory):
        if keyword in filename:
            filtered_files.append(filename)
    return filtered_files

directory = "/path/to/directory"
keyword = "example"
filtered_files = filter_file_by_keyword(directory, keyword)
print(filtered_files)

以上代码展示了如何根据文件名关键字筛选文件,可以根据需要修改目录路径和关键字。

二、文件内容筛选

1、根据文件内容关键字筛选:

import os

def filter_file_by_content(directory, keyword):
    filtered_files = []
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)
        with open(filepath, 'r') as file:
            content = file.read()
            if keyword in content:
                filtered_files.append(filename)
    return filtered_files

directory = "/path/to/directory"
keyword = "example"
filtered_files = filter_file_by_content(directory, keyword)
print(filtered_files)

以上代码展示了如何根据文件内容关键字筛选文件,可以根据需要修改目录路径和关键字。

2、根据正则表达式筛选文件:

import os
import re

def filter_file_by_regex(directory, pattern):
    filtered_files = []
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)
        with open(filepath, 'r') as file:
            content = file.read()
            if re.search(pattern, content):
                filtered_files.append(filename)
    return filtered_files

directory = "/path/to/directory"
pattern = r'bd{3}-d{3}-d{4}b'  # 匹配电话号码
filtered_files = filter_file_by_regex(directory, pattern)
print(filtered_files)

以上代码展示了如何使用正则表达式筛选文件,可以根据需要修改目录路径和正则表达式。

三、文件大小筛选

1、筛选大于指定大小的文件:

import os

def filter_large_files(directory, size):
    filtered_files = []
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)
        if os.path.isfile(filepath) and os.path.getsize(filepath) > size:
            filtered_files.append(filename)
    return filtered_files

directory = "/path/to/directory"
size = 1024  # 大小为1KB以上
filtered_files = filter_large_files(directory, size)
print(filtered_files)

以上代码展示了如何筛选大于指定大小的文件,可以根据需要修改目录路径和大小。

2、筛选小于指定大小的文件:

import os

def filter_small_files(directory, size):
    filtered_files = []
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)
        if os.path.isfile(filepath) and os.path.getsize(filepath) < size:
            filtered_files.append(filename)
    return filtered_files

directory = "/path/to/directory"
size = 1024  # 大小为1KB以下
filtered_files = filter_small_files(directory, size)
print(filtered_files)

以上代码展示了如何筛选小于指定大小的文件,可以根据需要修改目录路径和大小。

四、其他筛选方式

除了上述方式外,还可以根据文件的创建时间、修改时间等进行筛选,具体实现方式可以根据实际需求调整。

通过本文的介绍,您应该对Python如何对文件进行筛选有了一定的了解。根据不同的需求,您可以使用不同的方法来筛选文件。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。