我得到了我帖子的答案,谢谢你帮助我,希望别人从我的错误中吸取教训,祝大家好运。
我有一些文件夹,这些文件夹包含.元文件,我想把每个文件名保存在变量中,所有的文件夹都包含相同的元文件名,但我把文件夹名添加到文件中,用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
删除这五条语句。 它们是你错误的根源,而且它们没有任何作用。
HandlingFile = HandlingFile
VehiclesFile = VehiclesFile
CarVariationsFile = CarVariationsFile
CarcolsFile = CarcolsFile
DLCTextFile = DLCTextFile
为了减少你的代码... ...
if file.startswith(...):
HandlingFile = <some stuff>
return HandlingFile
print(HandlingFile...)
当你的 "if "语句返回False时,HandlingFile永远不会被定义。
Aaah! 现在我明白那些额外的五条语句想要做什么了... 你想要初始化你的变量。 你不想做
HandlingFile = HandlingFile
你想要
HandlingFile = None # or False, or '' or something else