質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

2803閲覧

jupyter notebookで実行出来て、VScodeでは実行できない。

mitsuyuki

総合スコア20

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/10/21 07:40

あるWEBサイトからpdfをダウンロードできるようにコードを書きました。

jupyter notebookでは最後まで実行できたのですが、VScodeでは実行ができず、以下のところで止まってしまいます。
調べてみると、{0:%Y%m%d}のところがうまくdatetimeから日付の文字列に変換できないため、止まってしまっているようです(クリックしてWEBサイトを開こうとすると、404notfoundでWEBのURLがきちんと変換されていないため)。

また、コードを.pyファイルに書き出して自動実行しようとしても、実行はされているのですが、上記のところで、止まってしまっているようで、ファイルは作成されません。

以下は止まっているところまでのコードの全文です。

import urllib as ul
import datetime
now = datetime.datetime.now()
result=ul.request.urlretrieve("https://i02.smp.ne.jp/u/mutb_img/{0:%Y%m%d}.pdf".format(now),"today.pdf")

VScodeでは上記のところまでで以下のようなエラーメッセージが出ています。

例外が発生しました: AttributeError
module 'urllib' has no attribute 'request'
File "D:\Documents\python_cron\benchmark.py", line 4, in <module>
result=ul.request.urlretrieve("https://i02.smp.ne.jp/u/mutb_img/{0:%Y%m%d}.pdf".format(now),"today.pdf")

以下はコード全文です。
import urllib as ul
import datetime
now = datetime.datetime.now()
result=ul.request.urlretrieve("https://i02.smp.ne.jp/u/mutb_img/{0:%Y%m%d}.pdf".format(now),"today.pdf")
import shutil
shutil.move("C:/Users/mitsu/today.pdf","D:/benchmark/today.pdf")
import datetime
import os
os.chdir("D:/benchmark")
now = datetime.datetime.now()
old ="today.pdf"
new ="{0:%Y%m%d}.pdf".format(now)
os.rename(old,new)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

最終的にはWindowsのタスクスケジューラで実行させたかったのですが、
ふと、タスクスケジューラの参照プログラムが良くないのではと思って、
python.exeからpythonw.exeに変えました。

また、プログラムも以下のものに変えました。
その結果、起動し、ファイルも保存することができました。
お騒がせしました。ありがとうございました。

import urllib.request
import datetime
today = datetime.datetime.now()
alltoday=str(today.year)+str(today.month)+str(today.day)
url="https://i02.smp.ne.jp/u/mutb_img/"+str(alltoday)+".pdf"
save_name="today.pdf"

nem = urllib.request.urlopen(url).read()

with open(save_name, mode="wb") as f:
f.write(nem)
import shutil
shutil.move("D:/benchmark/program/today.pdf","D:/benchmark/today.pdf")
import datetime
import os
os.chdir("D:/benchmark")
now = datetime.datetime.now()
old ="today.pdf"
new ="{0:%Y%m%d}.pdf".format(now)
os.rename(old,new)

投稿2020/10/23 10:09

mitsuyuki

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Python

1import urllib as ul 2import datetime 3now = datetime.datetime.now() 4result=ul.request.urlretrieve("https://i02.smp.ne.jp/u/mutb_img/{0:%Y%m%d}.pdf".format(now),"today.pdf")

を下記に書き換えて実行してみてください。

Python

1from urllib import request 2import datetime 3now = datetime.datetime.now() 4result=request.urlretrieve("https://i02.smp.ne.jp/u/mutb_img/{0:%Y%m%d}.pdf".format(now),"today.pdf")

こちらの環境では上記をターミナルで実行したところエラーなくpdfファイルが作成されました。

投稿2020/10/21 11:19

編集2020/10/21 11:47
meg_

総合スコア10605

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsuyuki

2020/10/21 11:44 編集

ご回答ありがとうございます。上下が一緒なので、以下の通りで記載してみました。 from urllib import request import datetime now = datetime.datetime.now() result=request.urlretrieve("https://i02.smp.ne.jp/u/mutb_img/{0:%Y%m%d}.pdf".format(now),"today.pdf") import shutil shutil.move("C:/Users/mitsu/today.pdf","D:/benchmark/today.pdf") import datetime import os os.chdir("D:/benchmark") now = datetime.datetime.now() old ="today.pdf" new ="{0:%Y%m%d}.pdf".format(now) os.rename(old,new) ただ、jupyterでは動くのですが、やはりvsコードでは動きませんでした。 今度は何のエラーも表示されないのですが、vsコードではフォルダにファイルは出来ませんでした。
meg_

2020/10/21 11:49 編集

失礼しました。修正しました。 pyファイルにしてターミナルから実行するとどうでしょうか? 最初のpdfファイルを作成するところまでで試してみてください。
meg_

2020/10/21 11:53

回答の4行のコードであれば、当方のVSCodeでも問題なくpdfが作成されることを確認しました。
meg_

2020/10/21 12:04

ちなみにpdfファイルは「D:/benchmark」に出来てませんか?コード中で移動してますよね?
mitsuyuki

2020/10/22 09:00

他の仕事があって、試せませんでした。すみません。 コマンドラインで今日試したのですが、 File "<stdin>", line 1と出てダメでした。 SyntaxError: unexpected character after line continuation characterともでます。 VScodeでは試しても以下のように出ます。 例外が発生しました: URLError <urlopen error unknown url type: https> File "D:\Documents\python_cron\benchmark++.py", line 4, in <module> result=request.urlretrieve("https://i02.smp.ne.jp/u/mutb_img/{0:%Y%m%d}.pdf".format(now),"today.pdf")
mitsuyuki

2020/10/22 09:08

なお、jupyterで4行だけコードを実行すると、ユーザーフォルダにtoday.pdfができていることは確認できました。 また、すべてのコードを実行しても、やはりD:¥benchmarkには日付の名前にリネームされて、保存されてました。
mitsuyuki

2020/10/22 10:40 編集

なお、日付の処理がおかしいのかなと思って、以下のコードを記載してみましたが、やはり、VScodeやターミナルからはrequestのところで、止まってしまいました。jupyterではきちんと実行されます。 from urllib import request import datetime today = datetime.datetime.now() alltoday=str(today.year)+str(today.month)+str(today.day) url="https://i02.smp.ne.jp/u/mutb_img/"+str(alltoday)+".pdf" result=request.urlretrieve(url,"today.pdf") import shutil shutil.move("C:/Users/mitsu/today.pdf","D:/benchmark/today.pdf") import datetime import os os.chdir("D:/benchmark") now = datetime.datetime.now() old ="today.pdf" new ="{0:%Y%m%d}.pdf".format(now) os.rename(old,new)
meg_

2020/10/22 10:48

> SyntaxError: unexpected character after line continuation characterともでます。 SyntaxErrorは文法上のエラーです。文末にエラーの原因がありませんか?(pyファイルの文字コードはutf-8ですよね?) ところでお使いの環境(OS)は何ですか? こちらはWindows8で試して冒頭の4行については問題なく実行できました。 OSとpythonのバージョンについても質問に追記すると、より良い回答が付くかもしれません。
meg_

2020/10/22 10:49

確認ですがProxyは使ってないですよね?
mitsuyuki

2020/10/23 04:34

すみません。全文貼り付けるようにしたつもりでしたが、一部切れてました。 from urllib import request import datetime today = datetime.datetime.now() alltoday=str(today.year)+str(today.month)+str(today.day) url="https://i02.smp.ne.jp/u/mutb_img/"+str(alltoday)+".pdf" result=request.urlretrieve(url,"today.pdf") import shutil shutil.move("C:/Users/mitsu/today.pdf","D:/benchmark/today.pdf") import datetime import os os.chdir("D:/benchmark") now = datetime.datetime.now() old ="today.pdf" new ="{0:%Y%m%d}.pdf".format(now) os.rename(old,new) ですが、やはり、 例外が発生しました: URLError <urlopen error unknown url type: https> File "D:\Documents\python_cron\benchmark+++++.py", line 6, in <module> result=request.urlretrieve(url,"today.pdf") と出ます。 使っているOSはwindows10です。pythonはvscodeにエクステンションパックを入れています。 それは1.6と出ています。 一方でjupyter notebookはanaconda3から実行しています。 実行すると、ファイルが存在しないというエラーが出たりするのですが、 結果的には指定のフォルダにファイルは出来上がります。 また、プロキシーは使ってません。 初心者のため、気づかないところで、ミスがあるのかもしれません。 もう少し自分で勉強します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問