2024-06-26 14:48:34 发布
网友
大家好,我有关于全局变量的问题。如何将文件名放入varibale并在global上调用它。 我的代码:
for filename in dirs: if filename.startswith("EPG_NatGeo"): z = filename output_file = open('nat.xml','w') with open (r'{}','r').format(z) as file:
varibale怎么会变成文件打开?感谢您阅读这篇文章!在
这里根本不需要使用.format():
.format()
with open(z, 'r') as file:
即使你这么做了,你也应该在string对象上调用它,而不是在打开的文件中调用它:
请注意,z在循环中被多次重新绑定。如果多个filename值与.startswith()测试匹配,则只会将最后一个匹配项传递给open()。如果no值匹配,您将面临z从未被绑定的风险,您将得到一个NameError异常。在
z
filename
.startswith()
open()
NameError
使用break选择第一个匹配项,并在for循环中使用else:来检测没有匹配:
break
for
else:
for filename in dirs: if filename.startswith("EPG_NatGeo"): z = filename break else: raise ValueError('No filename matched')
这里根本不需要使用
.format()
:即使你这么做了,你也应该在string对象上调用它,而不是在打开的文件中调用它:
^{pr2}$请注意,
z
在循环中被多次重新绑定。如果多个filename
值与.startswith()
测试匹配,则只会将最后一个匹配项传递给open()
。如果no值匹配,您将面临z
从未被绑定的风险,您将得到一个NameError
异常。在使用
break
选择第一个匹配项,并在for
循环中使用else:
来检测没有匹配:相关问题 更多 >
编程相关推荐