for ne in new_name_list: file_path = os.path.join(path, ne) with open(file_path) as f: data = json.load(f) number_of_obstacles=len(data["radarObs"]) name.append(filename) num.append(number_of_obstacles)修改如果new_name_list的文件名不存在则跳过
时间: 2024-03-06 08:46:40 浏览: 17
可以在代码中加入一个判断语句,判断文件是否存在,如果不存在则跳过当前循环。修改后的代码如下:
```
import os
import json
name = []
num = []
path = './data'
new_name_list = ['file1.json', 'file2.json', 'file3.json']
for ne in new_name_list:
file_path = os.path.join(path, ne)
if not os.path.exists(file_path):
continue
with open(file_path) as f:
data = json.load(f)
number_of_obstacles = len(data["radarObs"])
name.append(ne)
num.append(number_of_obstacles)
```
这样修改后,如果new_name_list中的某个文件不存在,程序会跳过当前循环,不会出现文件读取错误的情况。
相关问题
for ne in new_name_list: file_path = os.path.join(path, ne) if not os.path.exists(file_path): continue with open(file_path) as f: data = json.load(f) number_of_obstacles=len(data["radarObs"]) radar_num.append(number_of_obstacles) radar_name.append(ne)打印出找不到文件的值
好的,你可以在 `if not os.path.exists(file_path):` 的分支中加入打印找不到文件的值的语句,例如:
```python
for ne in new_name_list:
file_path = os.path.join(path, ne)
if not os.path.exists(file_path):
print(f"找不到文件:{file_path}")
continue
with open(file_path) as f:
data = json.load(f)
number_of_obstacles = len(data["radarObs"])
radar_num.append(number_of_obstacles)
radar_name.append(ne)
```
在这个例子中,我们使用 `if not os.path.exists(file_path):` 判断文件是否存在,如果文件不存在,则会执行 `print(f"找不到文件:{file_path}")` 语句,打印出找不到文件的值。然后使用 `continue` 跳过当前循环,继续执行下一次循环。如果文件存在,则会继续执行后面的语句,读取文件内容并统计障碍物数量。
希望这个例子能够帮到你!
os.path.dirname和os.path.basename区别和详解
可以使用Java的File类来获取指定目录下的所有文件名,具体步骤如下:
1. 在Spring Boot启动时,创建一个File对象,指向/data/目录。
2. 调用File对象的list()方法,获取该目录下的所有文件名。
3. 遍历文件名数组,可以将文件名存储到一个List或者Set中,以便后续使用。
示例代码如下:
```
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MyApplication {
public static void main(String[] args) {
// 创建File对象,指向/data/目录
File dir = new File("/data/");
// 调用list()方法,获取该目录下的所有文件名
String[] fileNames = dir.list();
// 遍历文件名数组,将文件名存储到List中
List<String> fileList = ne