Python 3の次のコードに相当するものを誰か教えてもらえますか?
file_list = range(1, 20)
for x in file_list:
exec "f_%s = open(file_path + '/%s.txt', 'w')" % (x, x)
19 個のファイルを開く必要があります。すべてに関連付けられた変数名があります。
Python 3の次のコードに相当するものを誰か教えてもらえますか?
file_list = range(1, 20)
for x in file_list:
exec "f_%s = open(file_path + '/%s.txt', 'w')" % (x, x)
19 個のファイルを開く必要があります。すべてに関連付けられた変数名があります。
を使用して異なる名前の変数を作成する代わりに、辞書を使用することをお勧めしますexec
。
f = {x:open('{}/{}.txt'.format(file_path, x), 'w') for x in range(1, 20)}
exec
はPython 3の関数になりました。.format()
exec("f_{0} = open(file_path + '/{0}.txt', 'w')".format(x))
また、これを使用する理由はありません。他の人が指摘したように、単純な辞書が機能するはずです。
d = {}
for i in range(1,20):
d['f_'+str(i)] = open(file_path + '/{}.txt'.format(i), 'w')
を必要としないより良いコードをお勧めできますexec
か?
import os
file_list = range(1, 20)
f = {}
for x in file_list:
f[x] = open(os.path.join(file_path, '{0}.txt'.format(x)), 'w')
これは、ファイルのリストを開く悪い方法です。リストを使用します。
import os
file_path = '.'
files = [open(os.path.join(file_path,'{}.txt'.format(i)),'w') for i in range(1,20)]