Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开文件中的Python全局变量_Python_File_Variables_Global - Fatal编程技术网

打开文件中的Python全局变量

打开文件中的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并在全局上调用它。 我的代码:


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')