2017-05-24 17 views
2

Pythonにはまだまだ新しいので、簡単に答えられるはずです。リスト内の項目を使ってファイル名を作成する - forループ

forループに使用しているリストがあります。リスト内の各項目には実行されたアクションがありますが、何が起こったのかについてファイルを書きたいのですが、forループの変数を使用してリスト内の各項目の特定のファイル名を作成するにはどうすればいいですか?このようなものがある。リスト内の個々のアイテムを表現するために%iを使用して正しい軌道に乗って

mylist = ['hello', 'there', 'world'] 
for i in mylist: 
    outputfile = open('%i.csv', 'a') 
    print('hello there moon', file=outputfile) 

アムI?

答えて

8

次のようにあなたが必要なものを行うためにformat()を使用することができます。withを使用して

mylist = ['hello', 'there', 'world'] 

for word in mylist: 
    with open('{}.csv'.format(word), 'a') as f_output: 
     print('hello there moon', file=f_output)  

も自動的その後、あなたのファイルを閉じます。

format()には、あらゆる種類の文字列フォーマットを可能にする多くの可能な機能がありますが、単純なケースでは{}を引数(word)に置き換えることができます。

+0

おかげで、私はそれに – user2086572

+0

を書き込んだ後、ファイルを閉じて考えていなかった私は、フォーマット時にこれに新しいものをピックアップするので、多くの事をもう少し見ていきます、少なくともそれはしかし楽しいです! – user2086572

2

次のコードを使用してください。

mylist = ['hello', 'there', 'world'] 
for i in mylist: 
    outputfile = open('%s.csv'%i, 'a') 
    print('hello there moon', file=outputfile) 
    outputfile.close() 
2

リスト内の項目は文字列なので、%sを使用する必要があります。

outputfile = open('%s.csv' % i, 'a') 
1
mylist = ['hello', 'there', 'world'] 
for item in mylist: 
    with open('%s.txt'%item,'a') as in_file: 
     in_file.write('hello there moon') 
関連する問題