文件里面有多个文件,每个文件下面有很多jpg格式的照片,把所有照片提取出来并且放在一个新的文件夹下面。
可以使用Python的os和shutil库来完成这个任务。
比如说:我的faces95文件夹下面有95个文件,每个文件下面有十七到十八个照片不等。
把所有照片提取出来可以用以下python代码:
import os
import shutil
# 设置原始文件夹和目标文件夹
data_folder = 'C:\\Users\\ljx\\Desktop\\Images'
photo_folder = 'C:\\Users\\ljx\\Desktop\\new_images'
# 创建目标文件夹
if not os.path.exists(photo_folder):
os.makedirs(photo_folder)
# 遍历所有文件夹
for root, dirs, files in os.walk(data_folder):
for file in files:
# 如果文件是jpg文件
if file.endswith('.jpg'):
# 构造原始文件路径和目标文件路径
src_path = os.path.join(root, file)
dst_path = os.path.join(photo_folder, file)
# 复制文件到目标文件夹
shutil.copyfile(src_path, dst_path)
需要修改的地方:
data_folder = ''中的改为自己的需要提取的文件路径
photo_folder = ''中的改为自己的需要放置的文件路径,默认是新建文件,自己新建也可以
# 设置原始文件夹和目标文件夹
data_folder = 'C:\\Users\\ljx\\Desktop\\faces95'
photo_folder = 'C:\\Users\\ljx\\Desktop\\new_images'
跑出来的结果在指定的文件路径中查看,比如我的在桌面上,就是
如果文件较大,需要的python运行时间会更长一点,需要耐心等待。
如果你想复制其他类型的文件,你可以更改if file.endswith(‘.jpg’)这一行的条件,就可以了。
如果是csv
可以使用Python的pandas库来进行这个任务。首先,确保你已经安装了pandas库。如果还没有安装,可以使用以下命令安装:
pip install pandas
接下来,你可以使用以下代码来批量提取文件夹下的CSV文件,根据列索引提取特定几列,并将提取后的数据保存到新建的一个文件夹。在代码中,input_folder是包含CSV文件的文件夹路径,output_folder是保存提取后数据的文件夹路径,columns_to_extract是一个包含你想要提取的列索引的列表。
import os
import pandas as pd
# 输入文件夹路径
input_folder = 'path/to/input/folder'
# 输出文件夹路径
output_folder = 'path/to/output/folder'
# 要提取的列索引
columns_to_extract = [0, 2, 4] # 例如,提取第0列,第2列,第4列
# 确保输出文件夹存在,如果不存在则创建
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历输入文件夹下的所有文件
for filename in os.listdir(input_folder):
if filename.endswith('.csv'):
# 构建输入文件的完整路径
input_file_path = os.path.join(input_folder, filename)
# 读取CSV文件
df = pd.read_csv(input_file_path)
# 提取特定列
extracted_data = df.iloc[:, columns_to_extract]
# 构建输出文件的完整路径
output_file_path = os.path.join(output_folder, f'extracted_{filename}')
# 保存提取后的数据到新文件中
extracted_data.to_csv(output_file_path, index=False)
print(f'文件 {filename} 处理完成,提取后的数据已保存到 {output_file_path}')
在这个代码中,os.listdir(input_folder)会列出输入文件夹下的所有文件,然后通过判断文件扩展名为.csv来确定是CSV文件。对于每个CSV文件,使用pd.read_csv()函数读取数据,然后使用.iloc[]方法根据列索引提取特定列。提取后的数据保存在新文件中,文件名前面加上extracted_前缀,以示区分。
请替换input_folder和output_folder的值为你实际的文件夹路径,并根据需要修改columns_to_extract列表,以提取你想要的特定列。
总结
在处理包含多个文件夹和大量jpg格式照片的任务时,我们可以使用Python的os和shutil库来实现。首先,我们需要设置原始文件夹路径和目标文件夹路径。在代码中,我们使用了os.walk()函数来遍历所有文件夹和文件。对于每个文件,我们检查其是否为jpg格式,如果是,则复制到目标文件夹中。
首先,我们创建了一个目标文件夹,确保它存在。然后,我们使用os.walk()遍历了原始文件夹中的所有文件夹和文件。在每个文件中,我们检查文件的扩展名是否为.jpg,如果是,则构造原始文件路径和目标文件路径,并使用shutil.copyfile()函数将文件复制到目标文件夹中。
在代码中,你需要修改data_folder和photo_folder的值,将它们分别设置为原始文件夹的路径和目标文件夹的路径。这样,代码就能够在指定的文件夹中提取所有jpg格式的照片,并将它们复制到新的文件夹中。
如果你需要处理其他类型的文件,只需要修改if file.endswith(‘.jpg’)这一行的条件为你想要处理的文件类型即可。这个脚本提供了一个灵活且高效的方法,可以处理包含大量文件的文件夹,确保你的数据得以整理和备份。文章来源:https://www.toymoban.com/news/detail-415920.html
需要注意的是,如果文件较大,可能需要一些时间来处理,因此请耐心等待。通过这种方式,你可以方便地整理和处理大规模的文件,提高了工作效率。文章来源地址https://www.toymoban.com/news/detail-415920.html
到了这里,关于【用python将文件夹下面的文件夹里面的文件全部提取出来,并且放到一个新的文件夹】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!