if 语句没有保存变量数据 #Python

问题描述 投票:0回答:1

我得到了我帖子的答案,谢谢你帮助我,希望别人从我的错误中吸取教训,祝大家好运。

我有一些文件夹,这些文件夹包含.元文件,我想把每个文件名保存在变量中,所有的文件夹都包含相同的元文件名,但我把文件夹名添加到文件中,用hypthen means-> foldername + '-' + filename。

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

所以当我要把每个文件夹的元文件名打印到这个文件中时,它并没有保存变数

    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
python python-3.x if-statement variables return
1个回答
0
投票

删除这五条语句。 它们是你错误的根源,而且它们没有任何作用。

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

0
投票

为了减少你的代码... ...

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

print(HandlingFile...)

当你的 "if "语句返回False时,HandlingFile永远不会被定义。

Aaah! 现在我明白那些额外的五条语句想要做什么了... 你想要初始化你的变量。 你不想做

HandlingFile = HandlingFile

你想要

HandlingFile = None  # or False, or '' or something else
© www.soinside.com 2019 - 2024. All rights reserved.