查找文件夹内相同名字的json文件,列出python代码
时间: 2023-09-18 16:06:17 浏览: 329
查找相同文件
5星 · 资源好评率100%
### 回答1:
您可以使用以下代码来查找文件夹内的所有 JSON 文件:
```
import os
# 设置文件夹路径
folder_path = '/path/to/folder'
# 遍历文件夹内的所有文件
for root, dirs, files in os.walk(folder_path):
for file in files:
# 判断文件是否为 JSON 文件
if file.endswith('.json'):
print(file)
```
要列出具有相同名字的 JSON 文件,可以在上述代码的基础上进行更改,如下所示:
```
import os
# 设置文件夹路径
folder_path = '/path/to/folder'
# 存储文件名
file_names = []
# 遍历文件夹内的所有文件
for root, dirs, files in os.walk(folder_path):
for file in files:
# 判断文件是否为 JSON 文件
if file.endswith('.json'):
# 将文件名加入列表中
file_names.append(file)
# 列出具有相同名字的文件
for file_name in set(file_names):
if file_names.count(file_name) > 1:
print(file_name)
```
希望这些代码对您有帮助!
### 回答2:
您可以使用Python的os模块和json模块来实现查找文件夹内相同名字的json文件,并将其列出的功能。下面是一个示例代码:
```python
import os
import json
def find_same_name_json_files(folder_path):
json_files = []
file_names = []
# 遍历文件夹内所有文件和子文件夹
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
# 判断文件扩展名是否为json
if file.endswith('.json'):
file_name = os.path.splitext(file)[0]
# 判断文件名是否重复
if file_name in file_names:
json_files.append(file_path)
else:
file_names.append(file_name)
return json_files
# 测试
folder_path = "/path/to/folder"
same_name_json_files = find_same_name_json_files(folder_path)
for file_path in same_name_json_files:
print(file_path)
```
以上代码首先定义了一个`find_same_name_json_files`函数,该函数接受一个文件夹路径作为参数,返回文件夹内相同名字的json文件的路径列表。在函数内部,我们使用`os.walk`函数遍历文件夹内所有文件和子文件夹,并通过判断文件扩展名是否为json来筛选出json文件。然后,我们将文件名存储在`file_names`列表中,并检查是否有重复的文件名,若有重复,则将文件路径添加到`json_files`列表中。最后,我们将列出的文件路径打印出来。
您只需要将`/path/to/folder`替换为实际的文件夹路径,运行代码即可得到列出的相同名字的json文件路径列表。
### 回答3:
可以使用Python的os模块和json模块来实现查找文件夹内相同名字的json文件并列出其路径的功能。
首先,可以使用os模块的walk函数遍历文件夹内的所有文件和子文件夹。然后使用os模块的path.splitext函数判断文件的扩展名是否为.json,以筛选出json文件。接下来,可以使用os模块的path.basename函数获取文件的基本文件名(不包含路径和扩展名),并将其存储在一个列表中。
接下来,可以使用collections模块的Counter函数来统计列表中每个元素出现的次数,即相同文件名的json文件的数量。然后可以使用一个字典来存储文件名和对应的路径列表。
最后,可以遍历字典,并将文件名和对应路径列表输出。
以下是一个示例代码:
```python
import os
import json
from collections import Counter
def find_same_name_json_files(folder_path):
file_names = []
same_name_files = {}
for root, dirs, files in os.walk(folder_path):
for file in files:
if os.path.splitext(file)[1] == '.json':
file_names.append(os.path.splitext(file)[0])
file_name_counts = Counter(file_names)
for root, dirs, files in os.walk(folder_path):
for file in files:
if os.path.splitext(file)[1] == '.json':
file_name = os.path.splitext(file)[0]
file_path = os.path.join(root, file)
if file_name in same_name_files:
same_name_files[file_name].append(file_path)
else:
same_name_files[file_name] = [file_path]
for file_name, file_paths in same_name_files.items():
print(f"{file_name}.json 的路径:")
for file_path in file_paths:
print(file_path)
# 使用示例
folder_path = "文件夹路径"
find_same_name_json_files(folder_path)
```
这段代码将会列出给定文件夹路径中相同名字的json文件的路径。可以将"文件夹路径"替换为具体文件夹的路径进行测试。
阅读全文