我想遍历一个包含3个文件夹的目录,每个文件夹都包含图像。结构是这样的:
- src
-- main.py
- data
-- train
--- Type_1
--- Type_2
--- Type_3
我的代码是这样的:
for t in [1, 2, 3]:
#load_files
os.chdir("../data/train/Type_" + str(t))
files = glob.glob("*.jpg")
no_files = len(files)
#iterate and read
for n, file in enumerate(files):
try:
print (file, t, "-files left", no_files -n)
except Exception as e:
print(e)
print(file)
但是在完成 Type_1 的迭代后,我收到一条错误消息:
Traceback (most recent call last):
File "C:/Users/joasa/src/main.py", line 33, in <module>
os.chdir("../data/train/Type_" + str(t))
FileNotFoundError: [WinError 3] The system cannot find the path specified: '../data/train/Type_2'
答案 0 :(得分:2)
请参阅@ John的答案以获得更合适的方法 - 除非您确实需要,否则不要if (mode.equals("string"))
。
我觉得我的回答仍有一定的相关性,所以我要离开了 - 见下文。
你正在使用相对路径,这可能会在这种情况下遇到麻烦。
跟随下面(它不会起作用):
chdir()
/home/joasa/my_project/
/home/joasa/data/train/Type_1/
/home/joasa/data/train/data/train/Type_2/
我建议您在绝对路径上执行此操作,如下所示:
/home/joasa/data/train/data/train/data/train/Type_3/
答案 1 :(得分:2)
请勿使用chdir()
更改整个程序的工作目录。只需直接传递路径:
glob.glob(os.path.join("..", "data", "train", "Type_{}".format(t), "*.jpg"))