本文将从多个方面详细阐述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'\b\d{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如何对文件进行筛选有了一定的了解。根据不同的需求,您可以使用不同的方法来筛选文件。
原创文章,作者:MUAA,如若转载,请注明出处:https://www.beidandianzhu.com/g/7709.html