0

私は python 3 を使用しており、html ドキュメントからコードを読み取ることはできましたが、書き込むことができませんでした。これについてどうすればよいでしょうか。私が何を意味するかをお見せします:

 import urllib.request

 locator=urllib.request.urlopen("file:///E:/Programming/Calculator.html", "r")
 transfer=locator.read()
 print("\n\n",transfer, "\n")
 locator.close()

 locator=urllib.request.urlopen("file:///E:/Programming/Calculator.html","w+")
 locator.write("<p> Hello this site has been slightly changed</p>")
 locator.close()

 locator=urllib.request.urlopen("file:///E:/Programming/Calculator.html","r")
 new=locator.read()
 print(new)
 locator.close()

だから私はそれを読むつもりですが、それに書き込んだり、そのコードを変更したりすることはできません。どうしてこれなの?

また、上記とまったく同じコードを使用して実際の URL Web サイトから読み取ろうとしましたが、URL を置き換えて書き込み機能を削除しました。インタプリタでエラーが発生し、サイトから読み取ることができませんでした。どうすればウェブサイトからも読むことができますか?

注: 私はただ学んでいるだけです。実際に違法なことをするつもりはありません。この種のことについてもっと知識を深めたいだけです。

また、 write を append() に変更してもエラーが発生します

                         import urllib.request

                          locator=urllib.request.urlopen("file:///E:/Programming/Calculator.html", "r")
                          transfer=locator.read()
                          print("\n\n",transfer, "\n")
                         locator.close()

                          locator=urllib.request.urlopen("file:///E:/Programming/Calculator.html", "w+")

                  with open("file:///E:/Programming/Calculator.html") as f:
                   f.write('something')

                   locator.close()

上記は、別のメンバー ut によって提案されたコードの一部であり、次のようなエラーで URL に書き込むのではありません。

                Traceback (most recent call last):
                File "C:\Users\KENNY\Desktop\Python\practice.py", line 10, in <module>
                with open("file:///E:/Programming/Calculator.html") as f:

OSError: [Errno 22] 無効な引数: 'file:///E:/​​Programming/Calculator.html'

貼り付けた通りの間隔は無視してください。すべてのコードは、 f.write 関数が識別される with open 部分まで一直線に並んでいる必要があります

4

1 に答える 1

0

urllib.request.urlopenファイルのようなオブジェクトを返します。

これらのオブジェクトは読み取りメソッドを公開しますが、書き込みを許可するべきではありません。

私は、それを使用するときurllibは、ブラウザにリソースを入力した場合と同じようにファイルを要求するようなものだと考えています。書き込みはできません。あなたはそれを要求し、それはあなたに提供されます。

書き込み用にファイルを開きたい場合は、openメソッドを使用できます

with open('E:/Programming/Calculator.html', 'w+') as f:
   f.write('something')

上記の例withでは、コードが with ブロックを終了するときに、基本的にファイルを手動で閉じるためのショートカットであるステートメントを使用しています。

に似ています

f = open('E:/Programming/Calculator.html', 'w+')
f.write('something')
f.close()

@Lattyware が素晴らしいチュートリアルを投稿しました。オンラインでさらに多くのチュートリアルを見つけることができます。ペップは、それが何のためにあるのかを概説します。

コマンドと混乱urlopenしているようです。open

于 2013-07-31T15:13:28.320 に答える