打开文件中的Python全局变量
大家好,我有一个关于全局变量的问题。如何将文件名放入varibale并在全局上调用它。 我的代码:打开文件中的Python全局变量,python,file,variables,global,Python,File,Variables,Global,大家好,我有一个关于全局变量的问题。如何将文件名放入varibale并在全局上调用它。 我的代码: varibale如何成为打开的文件?谢谢你阅读这篇文章 在这里您根本不需要使用.format(): with open(z, 'r') as file: 即使您这样做了,您也会在字符串对象上调用它,而不是在打开的文件上调用它: with open('foo_{}_bar'.format(z), 'r') as file: 请注意,z在循环中多次被重新绑定,如果多个filename值与您的.st
varibale如何成为打开的文件?谢谢你阅读这篇文章 在这里您根本不需要使用
.format()
:
with open(z, 'r') as file:
即使您这样做了,您也会在字符串对象上调用它,而不是在打开的文件上调用它:
with open('foo_{}_bar'.format(z), 'r') as file:
请注意,z
在循环中多次被重新绑定,如果多个filename
值与您的.startswith()
测试相匹配,则您将只将最后一个匹配传递给open()
。如果没有匹配的值,您将面临从未绑定的z
风险,您将得到一个namererror
异常
使用break
拾取第一个匹配项,并在for
循环中使用else:
检测未进行匹配:
for filename in dirs:
if filename.startswith("EPG_NatGeo"):
z = filename
break
else:
raise ValueError('No filename matched')
当您运行此代码时,您看到了什么错误?感谢Martijn Pieters的回答!你帮了我!
for filename in dirs:
if filename.startswith("EPG_NatGeo"):
z = filename
break
else:
raise ValueError('No filename matched')