以下、python を実行し、printは正常にできるのに、そのprintした内容がファイルに何も出力されません。
from bs4 import BeautifulSoup html=requests.get("https://xxxxxx.jp/").text soup=BeautifulSoup(html,"html.parser") f="altext.txt" f=open(file,"w") imgs=soup.find_all("img") for i in imgs: src=i["src"] alt=i.get("alt","alt無指定") src_alt=src+','+alt print(src_alt) f.write(src_alt) f.close
追加情報:
f="altext.txt" を file="altext.txt" に変更して実行したら、altext.txt ファイルは作成されていますが、0バイトになっています。print文の内容は正常に表示されています。
y_waiwai様の回答の通りで、f="altext.txt"の部分(なぜかfが全角・・・)が、file="altext.txt"の間違いと思うのですが、「printは正常にできる」というのが謎です。何か情報が足りていないのでは無いでしょうか?質問者様の追加情報を待ちます。
私の方で再現を試みたところ、ファイルに無事出力されました。
「エラーはなくなりました」とありましたが、以前は「(1)printは正常にできた」「(2)エラーは出ていた」「(3)ファイルの作成はできたが中身が書かれていなかった」ということでしょうか?質問文には(1)しか書かれておらず、(2)はこの質疑で、(3)はy-waiwa様との質疑で判明したことです。
それが現在は、「(1)printは正常にできた」「(2)エラーは出なくなった」「(3)ファイルの作成もできなくなった」で正しいでしょうか?
正確に情報を伝えていただくように、お願いします。
お手数ですが、以前の状態に戻して再度実行してみて、(1)(2)が含まれている画面出力結果、(3)におけるファイルの、ファイル名、中身が何か、ファイルのタイムスタンプが実行時点とあっているかどうか、を確認ください(可能であればコマンドラインでその出力を示してください)。以前の状態の正確な情報を得ることで、何か新たな問題点が見つかるかもしれません。
1. 最初の質問の時点では、print文の内容は表示されましたが、同時にエラーがでていました。
2. 次にf="altext.txt"の部分(なぜかfが全角・・・)の指摘で、file="altext.txt" に変更したら、エラーはなくなりました(print文の内容は表示されています)が、altext.txt のファイルは作成されていますが、何も出力されていません。
08:17の私のコメントにあるように、最初の時点の詳細情報を、質問文を修正する形で、提示お願いします。
回答3件
あなたの回答
tips
プレビュー