if语句未保存变量数据#Python

2024-06-08 14:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了M POST的答案谢谢你帮助我,并希望其他人从我的错误中吸取教训祝大家好运

我的文件夹接收.meta文件,并希望将每个文件名保存在变量中, 所有文件夹都采用相同的元文件名,但我使用hypthen means将文件夹名添加到文件中 -&燃气轮机;foldername+'-'+文件名

并希望将每个文件夹中的文件名打印到我在特定驱动程序中创建的文件中,并使用os.chdir()加载到文件路径中

因此,当我要将每个文件夹的元文件名打印到这个文件中时,它不会保存var

    for dirpath, dirnames, files in os.walk('.') :
        print('loop')
        for file in files :
            print('file')
            if file.endswith('.meta'):
                print('meta')
                METAPath = os.path.abspath(os.path.join(dirpath, file))
                METABase = os.path.basename(dirpath)
                if True :
                    if file.startswith(METABase + '-' + 'handling'):
                        HandlingFile = "'" + file + "'"
                        return HandlingFile
                    elif file.startswith(METABase + '-' + 'vehicles'):
                        VehiclesFile = "'" + file + "'"
                        return VehiclesFile
                    elif file.startswith(METABase + '-' + 'carvariations'):
                        CarVariationsFile = "'" + file + "'"
                        return CarVariationsFile
                    elif file.startswith(METABase + '-' + 'carcols'):
                        CarcolsFile = "'" + file + "'"
                        return CarcolsFile
                    elif file.startswith(METABase + '-' + 'dlctext'):
                        DLCTextFile = "'" + file + "'"
                        return DLCTextFile
                    print(HandlingFile, VehiclesFile ,CarVariationsFile ,CarcolsFile ,DLCTextFile)

错误:

Traceback (most recent call last):
  File "D:\pythonEx\MyFiveMPython\test.py", line 220, in <module>
    Stress_Veh()
  File "D:\pythonEx\MyFiveMPython\test.py", line 213, in Stress_Veh
    print(HandlingFile, VehiclesFile ,CarVariationsFile ,CarcolsFile ,DLCTextFile)
NameError: name 'HandlingFile' is not defined

Tags: 文件in文件夹returnos文件名fileprint
2条回答

要减少一点代码

if file.startswith(...):
    HandlingFile = <some stuff>
    return HandlingFile

print(HandlingFile...)

当“if”语句返回False时,HandlingFile永远不会被定义

啊!现在我明白了那五个额外的陈述想要做什么。。。您试图初始化变量。你不想这么做

HandlingFile = HandlingFile

你想要

HandlingFile = None  # or False, or '' or something else

删除这五项声明。他们是你错误的根源,他们什么都不做

                HandlingFile = HandlingFile
                VehiclesFile = VehiclesFile
                CarVariationsFile = CarVariationsFile
                CarcolsFile = CarcolsFile
                DLCTextFile = DLCTextFile

相关问题 更多 >