簡體   English   中英

使用 os.listdir() 時的 FileNotFoundError 倒車(最后一次調用)

[英]FileNotFoundError raceback (most recent call last) while using os.listdir()

我面臨找不到文件的問題。 os.listdir() 方法應該能夠加載文件夾。 為什么它不能正常工作? 給我任何意見和建議。 謝謝你。

scene = 'scene1'
folders = os.listdir("graph_state_list/" + scene + "/")
for folder in folders:
    try:
        activity_directory = "graph_state_list/" + scene + "/" + folder
        directories = os.listdir(activity_directory)
        program_discription_list = []
        for directory in directories:    
            program_description_path = "graph_state_list/" + scene + "/" + folder + "/" + directory + "/program-description.txt"
            program_description = {}
            input_file = open(program_description_path, "r")
            name_desc = []
            for line in input_file:
                name_desc.append(line.strip())
            input_file.close()
            program_description = {
                "name": name_desc[0],
                "description": name_desc[1]
            }
            program_discription_list.append(program_description)
            activity_program = get_activity_program("graph_state_list/" + scene + "/" + folder + "/" + directory + "/activityList-program.txt")
            graph_state_list = get_graph_state_list("graph_state_list/" + scene + "/" + folder + "/" + directory + "/activityList-graph-state-*.json")
            create_rdf(graph_state_list, program_description, activity_program, scene, directory)
    except Exception as e:
        print(e.args)


---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Input In [66], in <cell line: 2>()
      1 scene = 'scene1'
----> 2 folders = os.listdir("graph_state_list/" + scene + "/")
      3 for folder in folders:
      4     try:

FileNotFoundError: [Errno 2] No such file or directory: 'graph_state_list/scene1/'

問題在於路徑中的斜杠字符。

嘗試改用這個:

activity_directory = "graph_state_list\\" + scene + "\\" + folder

編輯:錯誤在第 2 行出現,因此請將該錯誤也更改為:

folders = os.listdir("graph_state_list\\" + scene + "\\")

我可以建議使用os.path.join()以使用正確的文件夾結構:

import os

current_dir = os.getcwd()
scene = 'scene1'
folders = os.path.join(current_dir, "graph_state_list", scene)
print(folders)
for folder in os.listdir(folders):
    ...

結果(文件夾):

C:\Users\xxx\OneDrive\BACKUP\Python\graph_state_list\scene1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM