写一段python代码 将文件夹中所有文件是以年月日小时命名的 将其中 当日16时-23时文件和 第二日 00时-15时文件提取出来放在另一文件夹中
时间: 2024-12-23 14:15:40 浏览: 0
要实现这个功能,你可以按照以下步骤编写Python代码:
1. 首先,定义一个`read_file`函数来读取文件,如引用[1]所示:
```python
def read_file(file_name, size):
with open(file_name, mode='rb') as fp:
while True:
c = fp.read(size)
if not c:
break
yield c
```
2. 使用os模块遍历指定文件夹及其子文件夹,找到以年月日小时命名的文件:
```python
import os
def filter_files(input_folder, output_folder):
pattern = r'\d{4}-\d{2}-\d{2}_[0-1][0-9]:[0-5][0-9]' # 正则表达式匹配日期和时间
for root, dirs, files in os.walk(input_folder):
for file in files:
if re.match(pattern, file):
process_time(file, root, output_folder)
def process_time(file_path, source_folder, dest_folder):
file_name, _ = os.path.splitext(os.path.basename(file_path))
hour = int(file_name.split('_')[1][:2])
if 16 <= hour < 24 or (hour == 0 and '00' in file_name): # 处理16:00至次日15:00之间的文件
destination_file = os.path.join(dest_folder, file_path)
# 如果目标文件不存在,则复制文件
if not os.path.exists(destination_file):
shutil.copy(file_path, destination_file)
```
3. 最后,在适当的地方调用`filter_files`函数:
```python
input_folder = '/path/to/input/folder'
output_folder = '/path/to/output/folder'
filter_files(input_folder, output_folder)
```
注意替换上述代码中的`/path/to/input/folder`和`/path/to/output/folder`为实际的文件路径。
阅读全文