Python实现遍历文件夹里的所有文件 随机抽取20个文件复制到指定路径
时间: 2023-12-27 18:05:22 浏览: 75
好的,我可以帮你解决这个问题。以下是Python代码实现:
```python
import os
import random
import shutil
# 定义遍历文件夹函数
def traverse_folder(folder_path):
file_list = []
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
file_list.append(file_path)
return file_list
# 获取指定文件夹下的所有文件路径
folder_path = 'your_folder_path'
file_list = traverse_folder(folder_path)
# 随机抽取20个文件
random_files = random.sample(file_list, 20)
# 复制文件到指定路径
target_path = 'your_target_path'
for file in random_files:
shutil.copy(file, target_path)
```
你只需要将 `your_folder_path` 替换为你的文件夹路径,将 `your_target_path` 替换为你要复制到的目标路径即可。
相关问题
从多个文件夹中随机抽取一定数量的图片放到一个文件夹里边 ,python实现
这是一道编程问题,属于技术范畴,我可以回答。
可以使用Python中的os、random、shutil模块来实现从多个文件夹中随机抽取一定数量的图片放到一个文件夹里边的功能。具体步骤如下:
1. 使用os模块定位到所有的待抽取图片所在的文件夹。
2. 使用os.walk()函数遍历目录,获取文件夹和文件路径。
3. 使用random.sample()函数从所有的文件路径中随机选择一定数量的路径。
4. 使用shutil.copy()函数将选出来的文件路径复制到指定文件夹中。
代码示例如下:
```
import os
import random
import shutil
# 待抽取图片所在的文件夹路径
folders = ['./folder1', './folder2']
# 抽取多少张图片
num_to_select = 10
# 将图片复制到哪个文件夹
output_folder = './selected_images'
# 获取所有待抽取图片的路径
all_files = []
for folder in folders:
for path, _, files in os.walk(folder):
for file in files:
all_files.append(os.path.join(path, file))
# 随机抽取一定数量的图片路径
selected_files = random.sample(all_files, num_to_select)
# 将选出的图片复制到指定文件夹中
if not os.path.exists(output_folder):
os.mkdir(output_folder)
for file in selected_files:
shutil.copy(file, output_folder)
```
注意:代码中的路径和数量可以根据实际情况进行修改。
使用python随机抽取txt文件夹中的200个文件,并保存为另一个文件夹
您好,我能够回答您的问题。针对您所提出的需求,您可以使用以下Python代码来实现:
```python
import random
import shutil
import os
# 指定原始文件夹路径和抽取数量
source_folder = '/path/to/source/folder'
extract_num = 200
# 获取原始文件夹中所有文件名
file_names = os.listdir(source_folder)
# 从中随机抽取指定数量的文件名
selected_files = random.sample(file_names, extract_num)
# 指定目标文件夹路径
target_folder = '/path/to/target/folder'
# 如果目标文件夹不存在,则创建
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 遍历每个选中的文件,复制到目标文件夹
for file_name in selected_files:
source_file = os.path.join(source_folder, file_name)
target_file = os.path.join(target_folder, file_name)
shutil.copy(source_file, target_file)
```
上述代码中,您需要将`/path/to/source/folder`替换为您要抽取文件的源文件夹路径,将`/path/to/target/folder`替换为您要保存抽取结果的目标文件夹路径,将`200`替换为您需要抽取的文件数量即可。
注意:这段代码只能对txt格式的文件进行随机抽取。如果您需要抽取其他格式的文件,需要根据实际情况进行修改。
阅读全文