python 比较两个文件夹中的图片是否同名
时间: 2023-08-07 20:02:32 浏览: 94
可以使用 Python 的 os 模块和 glob 模块来比较两个文件夹中的图片是否同名。以下是一个示例代码:
```python
import os
import glob
folder1 = 'path/to/folder1'
folder2 = 'path/to/folder2'
# 获取两个文件夹中的图片文件名列表
files1 = [os.path.basename(f) for f in glob.glob(os.path.join(folder1, '*.jpg'))]
files2 = [os.path.basename(f) for f in glob.glob(os.path.join(folder2, '*.jpg'))]
# 比较两个列表中的文件名是否相同
for file1 in files1:
if file1 in files2:
print(f"{file1} exists in both folders.")
else:
print(f"{file1} doesn't exist in {folder2}.")
for file2 in files2:
if file2 not in files1:
print(f"{file2} doesn't exist in {folder1}.")
```
这段代码假设两个文件夹中都只包含 jpg 格式的图片文件。如果要比较其他格式的文件,可以修改 glob.glob() 中的参数。
相关问题
python 比较两个文件夹中的同名文件
可以使用 Python 的 os 和 filecmp 模块来比较两个文件夹中的同名文件。具体步骤如下:
1. 使用 os 模块的 listdir() 方法分别获取两个文件夹中的文件列表。
2. 使用 filecmp 模块的 dircmp() 方法比较两个文件夹,返回一个 Dircmp 对象。
3. 使用 Dircmp 对象的 same_files 属性获取两个文件夹中相同的文件名列表。
4. 遍历相同文件名列表,依次比较两个文件夹中同名文件的内容是否一致。
下面是一个简单的示例代码:
```python
import os
import filecmp
dir1 = '/path/to/folder1'
dir2 = '/path/to/folder2'
files1 = os.listdir(dir1)
files2 = os.listdir(dir2)
dcmp = filecmp.dircmp(dir1, dir2)
same_files = dcmp.same_files
for filename in same_files:
file1 = os.path.join(dir1, filename)
file2 = os.path.join(dir2, filename)
if not filecmp.cmp(file1, file2):
print(f'{filename} is different')
```
其中,`filecmp.cmp()` 方法用于比较两个文件的内容是否一致。如果一致,返回 True;否则返回 False。
用python对两个文件夹内的同名但不同后缀的文件批量改名
下面是一个示例的Python代码,用于批量更改两个文件夹内同名但不同后缀的文件名:
```python
import os
def batch_rename_files(folder1, folder2):
files1 = os.listdir(folder1)
files2 = os.listdir(folder2)
for file1 in files1:
filename1, ext1 = os.path.splitext(file1)
for file2 in files2:
filename2, ext2 = os.path.splitext(file2)
if filename1 == filename2:
old_path = os.path.join(folder2, file2)
new_filename = f"{filename1}_new{ext2}"
new_path = os.path.join(folder2, new_filename)
os.rename(old_path, new_path)
print(f"Renamed {file2} to {new_filename}")
break
# 示例用法
folder1 = "/path/to/folder1" # 第一个文件夹路径
folder2 = "/path/to/folder2" # 第二个文件夹路径
batch_rename_files(folder1, folder2)
```
请注意,上述代码将在第一个文件夹中的文件名与第二个文件夹中的文件名进行比较,如果两个文件名相同(不包括文件扩展名),则将第二个文件夹中的文件重命名为`{原文件名}_new{扩展名}`。要使用代码,请将`folder1`和`folder2`更改为实际的文件夹路径。