python读取文件夹的所有图片并重命名
时间: 2023-11-09 18:11:43 浏览: 150
以下是一个示例代码,可以读取文件夹中的所有图片文件,并将其重命名为指定格式:
```python
import os
# 文件夹路径
folder_path = 'path/to/folder'
# 文件名前缀
prefix = 'image'
# 文件名从1开始计数
count = 1
# 循环读取文件夹中的所有文件
for filename in os.listdir(folder_path):
# 判断是否为图片文件
if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
# 构造新的文件名
new_filename = prefix + str(count) + '.' + filename.split('.')[-1]
# 重命名文件
os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))
# 计数器加1
count += 1
```
在上述代码中,我们使用 `os.listdir()` 函数获取文件夹中的所有文件名列表,然后使用 `os.rename()` 函数将每个文件重命名为新的文件名。新的文件名由指定的前缀和计数器构成,同时保留原始文件的扩展名。
相关问题
Python读取文件夹中多个子文件夹下的图片并重命名保存在新的文件夹中
可以使用Python中的os和shutil模块来实现文件夹操作,使用PIL库来处理图片。
以下是一个示例代码,可以读取指定文件夹下的所有子文件夹中的图片,并将其重命名后保存到一个新的文件夹中:
```python
import os
from PIL import Image
import shutil
# 指定原始文件夹路径和目标文件夹路径
src_path = 'path/to/source/folder'
dst_path = 'path/to/destination/folder'
# 遍历原始文件夹下的所有子文件夹
for root, dirs, files in os.walk(src_path):
for file in files:
# 判断文件是否为图片格式
if file.endswith('.jpg') or file.endswith('.png'):
# 读取图片并重命名
img = Image.open(os.path.join(root, file))
new_name = os.path.basename(os.path.dirname(root)) + '_' + file
# 保存图片到目标文件夹中
img.save(os.path.join(dst_path, new_name))
```
在上述代码中,使用os.walk函数遍历原始文件夹下的所有子文件夹,使用os.path.join函数构建文件路径,使用os.path.basename和os.path.dirname函数获取文件夹名称和父文件夹名称,使用PIL库中的Image.open和Image.save函数分别读取和保存图片。最终保存的图片命名方式为:父文件夹名称_原始文件名。
python读取文件夹下的图片并排序改名
可以使用Python自带的os和shutil模块来实现读取文件夹下的图片并排序改名。
首先,使用os模块的listdir函数获取目标文件夹下所有的文件名,并用sorted函数进行排序。然后,遍历文件名列表,使用shutil模块的move函数将文件移动到新的文件夹下,并使用字符串格式化操作改变文件名。
以下是一个示例代码:
```python
import os
import shutil
# 定义原始文件夹和目标文件夹路径
src_folder = r'path/to/src_folder'
dst_folder = r'path/to/dst_folder'
# 获取原始文件夹下所有文件名,并进行排序
files = sorted(os.listdir(src_folder))
# 遍历文件名列表,进行文件移动和重命名
for i, file in enumerate(files):
# 判断文件是否为图片文件
if file.endswith('.jpg') or file.endswith('.png'):
# 定义新的文件名
new_name = f'image_{i:03d}.jpg'
# 移动文件并重命名
shutil.move(os.path.join(src_folder, file), os.path.join(dst_folder, new_name))
```
这段代码将原始文件夹中所有以“.jpg”或“.png”结尾的图片文件重命名为“image_xxx.jpg”,并按照文件名的数字序号进行排序后移动到目标文件夹中。其中“:03d”表示输出数字序号时总共占3位,不足的位数用0进行填充。
阅读全文