0

こんにちは、グローバル変数について質問があります。ファイル名を変数に入れてグローバルに呼び出すにはどうすればよいですか。私のコード:

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:

変数はどのようにして開くためのファイルになりましたか? この投稿を読んでくれてありがとう!

4

1 に答える 1

2

ここではまったく使用する必要はありません.format():

with open(z, 'r') as file:

たとえそうしたとしても、開いているファイルではなく、文字列オブジェクトで呼び出します。

with open('foo_{}_bar'.format(z), 'r') as file:

複数の値がテストに一致するz場合、ループで複数回再バインドされることに注意してください。最後の一致のみを に渡します。一致する値がない場合、まったくバインドされていないというリスクがあり、代わりに例外が発生します。filename.startswith()open()zNameError

を使用breakして最初の一致を選択else:し、forループで使用して一致がなかったことを検出します。

for filename in dirs:
    if filename.startswith("EPG_NatGeo"):
        z = filename
        break
else:
    raise ValueError('No filename matched')
于 2013-10-03T08:29:11.480 に答える