2017-02-15 4 views
0

私は、ウェブサイトから大量のHTMLと画像を取得するためにスクレーパーに取り組んできました。私はスクレーパーを作動させていますが、ディレクトリーが大量に充填されているため、ナビゲートが困難です。それをサブディレクトリに保存するにはどうすればいいですか? HTMLセーブ一部:画像保存しサブディレクトリにファイルを保存する

t = open(str(current)+".html", 'w+') 
t.write(b) 
t.close() 

そして一部:それはへの書き込み言って

​​
+0

あなたはこれまでのことを私たちに見せたいかもしれませんか? – davidejones

+0

保存するパスを変更するのと同じくらい簡単ですか?ここには何が欠けていますか? – WillardSolutions

+0

私はかなりのコードを持っていますが、それはあなたが見る必要があるのですか? –

答えて

2

は、あなただけの、私たちに役に立たないですあなたのコードの一部を示していますサブディレクトリは単純ですが、最初にサブディレクトリを作成する必要があります。今のところ、あなたのコードの残りの部分がどのようなものかわからないので、ここではいくつかの基本的な例しかできません。

def create_folder(self, path): 
     try: 
      if os.path.isdir(path): 
       print("Error: The directory you're attempting to create already exists") # or just pass 
      else: 
       os.makedirs(path) 
     except IOError as exception: 
      raise IOError('%s: %s' % (path, exception.strerror)) 
     return None 

あるいは

os.makedirs("C:\\Example Folder\\") 

またはLinux

os.makedirs('/home/' + os.getlogin() + '/Example Folder/') 

の場合は簡単に通常どおりのようそれからちょうどちょうどサブディレクトリにパスを供給のように、それに書き込みます。この場合

def write(self, path, text): 
     try: 
      if os.path.isfile(path): 
       return None # or print and error, or pass etc... 
      else: 
       with open(path, 'w') as outFile: 
        outFile.write(text) 
     except IOError as exception: 
      raise IOError("%s: %s" % (path, exception.strerror)) 

     return None 

、あなたは「パス」パラメータと「テキスト」のパラメータ内のテキストを含む変数に自分のサブディレクトリへのパスを置くと思います。あなただけの

ような何かを

更新情報小規模のpythonプログラムを作るためにあなたのコメント

Aには本当に簡単な方法に取り組む「詳細」のクロスプラットフォームは..ですバイトなどの書き込み、追加するこの機能を変更することができます

if sys.platform == 'win32': 
    print('This is windows') 
elif sys.platform == 'linux2': 
    print('This is some form of linux') 

あなたはOSをチェックして、OSに基づいて、ブロックを実行することを追加することができます:)

はいあなたは上記の書き込み機能は、ファイルを上書きしないことが正しいなら、あなたはファイルを追加することができます(新しいを追加上書きのないテキストあなたはクラスで作業していない場合

あなたは「自己」を削除することができます。「」そう

def append(self, path, text): 
     try: 
      if os.path.isfile(path): 
       with open(path, 'a') as outFile: 
        outFile.write(text) 
     except IOError as exception: 
      raise IOError('%s: %s' % (path, exception.strerror)) 
     return None  

さらに更新などのために「W」フラグを変更することで)既存のテキストをngの。

あなたの最後のコメント「私は自分自身に何を入れますか」に基づいて、私はあなたのプロジェクトを一時的に放棄し、最初にパイソンの基礎を学ぶことを強く勧めます...あなたは次の場所にチュートリアルを見つけることができます。

https://www.tutorialspoint.com/python/

https://docs.python.org/3/tutorial/

あなたは単にあなたが公式サイト上で使用している方のいずれかに変更することができます古いバージョンを使用している場合は、「私はあなたに最高の幸運を祈ってますが、残念ながら私がすることができます最初に少なくとも基礎を知ることなく、さらに助けてください、私は申し訳ありません!

+0

ああ、いいですね。私はtry/exceptを使用して、プラットフォーム間の互換性のために両方の方法を使用できますか? –

+0

はい、あなたはまた、あなたがそれをさらに良くするためにどのosで作業しているかを簡単に見つけることができます。 – Afflicted

+0

ファイルを書き込むためのあなたのコードは、 't.write()'が行うことを書き換えるようです。あれは正しいですか?もしそうなら、この方法を使って画像を保存するにはどうすればよいですか? –

関連する問題