2016-04-03 17 views
0

こんにちは、file1.txt、file2.txtなどの名前のファイルを作成したいと思います。制限エラーが発生しています。それを動作させるために私のコードで何をする必要がありますか?forループを使用して複数のファイルを書き込むにはどうすればよいですか?

from bs4 import BeautifulSoup 

f = open('reut2-000.sgm', 'r') 
data= f.read() 
soup = BeautifulSoup(data, "html.parser") 

contents = soup.findAll('body') 
for i, content in contents: 
    file = open("file%i.txt" %i,'w') 
    file.write(content.text) 
    file.close() 

私はValueError: need more than 1 value to unpackエラーが発生しています。私は内部の私のためのループを与えるとき、私はあなたの場合のエラーIOError: [Errno 24] Too many open files: 'file508.txt'

+3

制限エラーとは何ですか?それは '' 'typoですか?問題がある可能性があります – Jasper

+1

特定のエラーメッセージを投稿してください。通常、OSは開いているファイルハンドルの数に制限を設けています。あなたのループの 'del file'が助けになることは可能です(私は期待しませんが)。 –

+0

私はここで 'SyntaxError'を期待しています - 毎回ボディの各結果を新しいファイルに書き込もうとしていますか? –

答えて

0

ValueError: need more than 1 value to unpack

contentsbs4.Tagインスタンスのリストを含んでいるでしょう得ます。それらを「索引付け」する場合は、enumerate()

for i, content in enumerate(contents): 
    file = open("file%i.txt" % i,'w') 
    file.write(content.text) 
    file.close() 
関連する問題