pythonでpathにファイルを書き込む関数の一般化
以下のような、urlの内容を保存する関数に、pathを引数にとってそこに保存するような機能をつけたいと思っています。
def download(url):
name = url.split("/")[-1]
print(name)
with open(name, "wb") as f:
f.write(requests.get(url).content)
以下のように書き換えましたが、この機能をこれから先に作る関数にもつけたい場合、どうするのが効率的でしょうか?
同じようなものを何度も書かずに済む方法をお聞きしたいです。
def download(url, path=None):
##ここから##
p = ""
if (path != None and os.path.exists(path)):
p = path
##ここまでのことです
name = url.split("/")[-1]
with open(p + name, "wb") as f:
f.write(requests.get(url).content)
デコレータなどを使うのでしょうか?方針がたたないので質問します。
環境はpython3.6.0です。
3/21 14時追記
この関数を他で呼び出したいということではなく、例えば以下のような先程の関数に似た関数を作るときに、pathに関する同じような処理をいちいち書くことを省略したいということです。
def download_new(url, path=None):
##ここから##
p = ""
if (path != None and os.path.exists(path)):
p = path
##ここまでのことです
name = url.split("/")[-1]
with open(p + name + "_new.jpg", "wb") as f:
f.write(requests.get(url).content)