くだすれPython(超初心者用) その38at TECH
くだすれPython(超初心者用) その38 - 暇つぶし2ch950:522
18/08/15 17:44:10.84 EAcVsQ5O.net
>>919
初めてのpython買ってみたんだけど、色々詳しく書いてあり過ぎてやや難し目に感じた…。
VBAはある程度さわれるから、何となくイメージは出来るのだけれども。

951:デフォルトの名無しさん
18/08/15 18:14:41.57 7DSwjy9L.net
複数のHTTPリクエストを並行して行う方法を教えてください。(できれば標準ライブラリのみで)
Python 3.6.5
<やりたいこと>
某サイトから動画をダウンロードするスクリプトを書いています。
「動画をダウンロード中は、一定間隔で特定URLにリクエストを発行(ハートビート)しないと、動画ストリームがサーバー側から閉じられてしまう」
というサイト仕様のため、下記の2処理を並行して実行したいです。
・処理1:動画をダウンロードしてファイルに書き込む
・処理2:1分おきに特定のURLにリクエストを発行する(ハートビート)
<やってみたこと>
標準ライブラリのasyncioとurllib.request.urlopenを使って非同期処理。
→動画のダウンロード(処理1)が完了してからハートビート(処理2)が実行される、という結果になり、期待したとおりにならず。
async def exec_download():
 await self._downlaod()
async def downlaod():
# 動画をダウンロード(時間がかかる)
 res = urlopen('URLリンク(www.unko.com)')
 shutil.copyfileobj(res, fout)
async def heartbeat():
# 1分おきにハートビート
 await asyncio.sleep(60)
 res = urlopen('URLリンク(www.unko.com)')
 await heartbeat()
loop = asyncio.get_event_loop()
coroutines = [heartbeat(), exec_download()]
loop.run_until_complete(asyncio.wait(coroutines))
以上、よろしくお願いします。

952:デフォルトの名無しさん
18/08/15 18:17:48.76 JTlr32HG.net
うんち

953:デフォルトの名無しさん
18/08/15 18:21:32.73 bkK5nIf1.net
>>922
そんなもん全く別個にやればいいだろ
一般に、スクリプトをうまく使うコツは、一つのもので色々なことをやろうとしないこと
まあその発想でいくとPythonすら要らないけどな
curlとシェルスクリプトで十分

954:デフォルトの名無しさん
18/08/15 18:51:36.06 uSjYsFnm.net
VScodeインストールしたのに、何か動かねえ!
右上のウィンドウで命令(print w)書いても、うんともすんとも
オール電化の康一を思い出したわ 吉良戦の時のさー

955:デフォルトの名無しさん
18/08/15 19:01:49.33 W/Izi4Yd.net
その1レスだけでプログラミング向いてないのがわかる

956:遊園地
18/08/15 19:46:50.11 H63Luids.net
VScodeでpythonデバッグしようとすると
Java runtime could not be located
The .NET CLI tools cannot be located. .NET Core debugging will not be enabled. Make sure .NET CLI tools are installed and are on the path.
Javaランタイムを見つけることができませんでした
.NET CLIツールを見つけることができません。 .NETコアのデバッグは有効になりません。 .NET CLIツールがインストールされ、パス上にあることを確認します。
諦めた

957:遊園地
18/08/15 19:50:02.83 H63Luids.net
デバッグなしで起動すると動くけど、
それなら、他のと変わらないなーー
ぐらい

958:デフォルトの名無しさん
18/08/15 19:50:03.49 Y7oow45s.net
>>921
プログラムの本とか買ったことないな。
ネットの方が情報あるし。
コードをとにかく色々書いてみて動作させながら言語の特徴やクセを掴んでいったほうが習得は早いと思うよ。
むしろ本はある程度書けるようになってから、もっと楽に書ける方法があったのかっていう意味で気づくためにみてる、立ち読みでだけど。

959:デフォルトの名無しさん
18/08/15 19:53:42.96 x0iBTGoo.net
既存のGUIウインドウ上にテキストを表示したいのですが何かいい方法ありますでしょうか

960:デフォルトの名無しさん
18/08/15 20:15:46.32 pSIls4/k.net
>>930
Pythonなんかつかわないで
そこらのロシアなんかに転がってるあやしげな汎用改造ツール使う

961:デフォルトの名無しさん
18/08/15 21:32:12.73 EAcVsQ5O.net
>>929
なるほど…そうやって本は活用するものなのか~。
ありがとう!

962:デフォルトの名無しさん
18/08/15 21:57:28.79 +OObTSrG.net
>>932
人による
俺は逆に最初は本読みながら作って、ある程度慣れたら疑問点をネットで調べてる

963:デフォルトの名無しさん
18/08/15 22:11:34.29 yyAkWswg.net
>>919>>921
この本は入門書じゃないぞ

964:デフォルトの名無しさん
18/08/15 22:12:05.88 e3I8nXvG.net
>>929
これはプログラミング自体の初心者は真似したらアカンよ
こういうこと言うのは高確率で他言語�


965:o験者だから



966:デフォルトの名無しさん
18/08/15 23:22:27.80 EAcVsQ5O.net
>>933
>>934
>>935
VBAはまぁまぁ使いこなせるんだけど、入門Pythonの本は難しくて…。
・確かな力が身に付くPython「超」入門
・はじめての簡単PythonAIプログラミング
この2冊を買って勉強中。
ExcelVBAと上手くリンクしながら動いてくれればこの上ないのだけれども…。
(上司からは「アプリ開発できるようなってください」と言われてるが、まだまだ先の話になりそう)

967:デフォルトの名無しさん
18/08/15 23:57:27.18 q5gHkF1g.net
>>919
なんで、蛇じゃなくてネズミなんだろう

968:デフォルトの名無しさん
18/08/16 00:01:20.35 IiF9TGTT.net
>>927
「vscode the .net cli tools cannot be located」で検索!
>>936
「みんなのPython 第4版、2017」が定番

969:デフォルトの名無しさん
18/08/16 00:21:28.03 x3zDbbaW.net
>>938
ありがとう、調べてみる!

970:デフォルトの名無しさん
18/08/16 00:27:09.51 tQF1Ua+o.net
俺、初めてのPythonめちゃ助けられた
というのも初プログラミング=Pythonだったから
コード真似て、こう動くんだというのはわかっても
用語とか解説がチンプンカンプンな事が多くて辞書的に使ってた
確かにクドイね。でも今なら他にいい本出てそうじゃん

971:デフォルトの名無しさん
18/08/16 01:11:31.91 57YYyuh5.net
型宣言とか戻り値の型とか書かないのすごく気持ち悪いね
まあ慣れるんだろうけど

972:デフォルトの名無しさん
18/08/16 01:18:20.94 9HlOn3Gq.net
>>941
書いてもいいのよ
type hinting

973:デフォルトの名無しさん
18/08/16 01:25:09.30 OpTecYpP.net
書いた方がvscodeでIntellisenseが効くから書いてる。

974:デフォルトの名無しさん
18/08/16 04:34:22.30 103J48LD.net
変数の中に数字が入っています。
具体的にどんな値が入っているか自分では分からない状態で、もしその値がマイナスの値だった場合、
その変数の値を他の値(例えば60)に変更するにはどう書いたらいいんでしょうか?

975:デフォルトの名無しさん
18/08/16 04:42:47.23 103J48LD.net
>>944
追記です
sleep関数を使って整数内のint(秒)間スリープさせてループです動かすスクリプトなんですが、たまに整数内の数字がマイナスになってしまった場合にエラーで止まってしまうので、それを防ぎたいと思いました

976:デフォルトの名無しさん
18/08/16 04:50:35.45 mpgAaxLb.net
a = 10
if a < 0:
a = 60
print(a)
a = -10
if a < 0:
a = 60
print(a)

977:デフォルトの名無しさん
18/08/16 05:02:53.82 103J48LD.net
>>946
どうもありがとうございました

978:デフォルトの名無しさん
18/08/16 10:01:01.41 LoNM+spa.net
>>937
蛇の食料

979:デフォルトの名無しさん
18/08/16 11:12:16.71 wiNukf+g.net
>>926
+1

980:デフォルトの名無しさん
18/08/16 13:27:34.52 uYNhfvy4.net
>>944
a=60 if a<0 else a

981:デフォルトの名無しさん
18/08/16 14:24:14.31 AFSiOhT6.net
今paizaラーニングのチャプター2 #3
やってるんだがアホすぎて不等号の意味が全くわからん

982:デフォルトの名無しさん
18/08/16 15:07:37.71 SGYMD3jf.net
それプログラミングじゃなくて中学数学が分からないのでは?

983:デフォルトの名無しさん
18/08/16 15:51:55.16 z5KyUW64.net
特定の文字列をUTCの時間だと指定してUnix時間に変換する方法を教えて欲しいです。
current_dataのStartTimeには2018-08-16T06:05:37と書かれてあります。
URLリンク(pastebin.com)
これだと9時間ずれてしまいます。

984:デフォルトの名無しさん
18/08/16 16:00:32.85 wiNukf+g.net
strptime
mktime

985:デフォルトの名無しさん
18/08/16 16:06:07.11 wiNukf+g.net
pytz

986:デフォルトの名無しさん
18/08/16 17:43:51.77 z5KyUW64.net
>>954
>>955
詳しくお願いできますか?

987:デフォルトの名無しさん
18/08/16 18:11


988::17.83 ID:Lbm+OgmQ.net



989:デフォルトの名無しさん
18/08/16 18:20:15.73 z5KyUW64.net
ちょっとわかりそうです

990:デフォルトの名無しさん
18/08/16 18:32:07.07 z5KyUW64.net
これでできました
baseStartTime = '2018-08-16T08:02:45+0000'
baseTimeFormat = '%Y-%m-%dT%H:%M:%S%z'
utc = datetime.strptime(baseStartTime, baseTimeFormat)
unix = utc.timestamp()
>>957
調べてみます

991:デフォルトの名無しさん
18/08/16 21:32:10.60 VSd23G4R.net
URLリンク(ideone.com)
pythonはCバインディングの関数よんでるだけだからな
調べてやったぞ
baseStartTimeがUTCならNo1.でいける
 setenv("TZ", "UTC", 1); ← コレで切り替える
 strptime(sz_time, sz_fmt, &t_tm);
 return mktime(&t_tm);
baseStartTimeがJST(UTC+09:00)ならNo2.でいける
 setenv("TZ", "Asia/Tokyo", 1); ← コレで切り替える
 strptime(sz_time, sz_fmt, &t_tm);
 return mktime(&t_tm);

992:デフォルトの名無しさん
18/08/16 22:13:23.11 z5KyUW64.net
>>960
これはCですか?

993:デフォルトの名無しさん
18/08/16 22:28:06.44 VSd23G4R.net
そう
しかしコタエとしては
オマエが作ったプログラムを起動する前に
適切な環境変数設定すれば
期待通りの結果になると考えられる
起動するまえにシェルで
TZ="UTC"
※ baseStartTimeがUTCの場合
もしくは
TZ="Asia/Tokyo"
※ baseStartTimeがJSTの場合
とすればいいハズ

994:デフォルトの名無しさん
18/08/17 11:42:19.78 23Jvz4gX.net
GAEとか変なTZの鯖もある

995:デフォルトの名無しさん
18/08/17 13:46:36.32 GPgJleJz.net
csvに入力してある内容からランダムで5W1Hゲームの答えを表示するコードをお願いします

996:デフォルトの名無しさん
18/08/17 13:56:50.54 XabtsNLS.net
宿題は宿題スレで

997:デフォルトの名無しさん
18/08/17 14:32:50.18 GPgJleJz.net
宿題ではないです
作り方がわからないので教えてください

998:デフォルトの名無しさん
18/08/17 15:22:13.09 ZZpHYasb.net
matplotlibで散布図を作りたいのですがプロットする点は点ではなく外部ファイルの画像データを使いたいです
これは可能でしょうか?

999:デフォルトの名無しさん
18/08/17 15:32:15.30 XabtsNLS.net
>>967
可能らしいよ
URLリンク(stackoverflow.com)

1000:デフォルトの名無しさん
18/08/18 01:01:12.82 K3y6E3T8.net
>>964-966
Ruby では、こういう感じ。
Python のCSV module も見れば?
# コロン区切りのCSV 入力ファイルを、1行ずつ処理する
input_file = "input.csv"
CSV.foreach(input_file, col_sep: ":") do |row|
puts row[1] # 列[1]
end

1001:デフォルトの名無しさん
18/08/18 03:00:30.68 xt3abbWh.net
with open(“file”, “w”) as csv_file:
# csv_file.readline()とかsplitとかご自由に。

1002:デフォルトの名無しさん
18/08/21 18:18:57.90 4zizh11G.net
秒を時:分:秒に変換したいです。
その時、時が00なら分:秒だけにしたいです。
以下のように書いたんですが、ifが動いてくれないです。
どう改善したらよいですか?
duration = "{0.hours:02}:{0.minutes:02}:{0.seconds:02}".format(relativedelta(seconds=baseDuration)) # 曲の長さ (時:分:秒に変換)
if str(duration)[0:1] == '00':
duration = str(duration[3:7])

1003:デフォルトの名無しさん
18/08/21 18:25:48.79 4zizh11G.net
>>971
自己レス
if str(duration)[0:2] == '00':
duration = str(duration[3:8])
これで動いてくれました。
最初の二文字の指定だから[0:1]、[3:7]だと思うんですが、なぜ[0:2]、[3:8]としないといけないんですか?

1004:デフォルトの名無しさん
18/08/21 18:42:19.65 JvEAafEP.net
>>972
そういう言語仕様だから
としか言いようがない

1005:デフォルトの名無しさん
18/08/21 18:51:53.44 4zizh11G.net
>>973
うまく理解する方法があればいいんですが、仕様という事で理解する事にします。

1006:デフォルトの名無しさん
18/08/21 19:13:14.34 4zizh11G.net
データをcsvファイルに保存したいです。
コンマ区切りだと、保存しようとしている項目の中にコンマが含まれているとおかしくなってしまうので、
"value1","value2","value3"
って感じで「"」で囲む事にしました。
csvFile = open(fileName, mode='a', encoding='utf-8')
print(f'"{unixStartTime}","{startTime}","{song}","{artist}","{album}","{releaseDate}","{identifier}","{itunesTrackId}"', file=csvFile)
csvFile.close()
しかし、項目の中に「"」が含まれていると、それもまたおかしくなってしまいました。
一般的に、どう書くんでしょうか?

1007:デフォルトの名無しさん
18/08/21 19:20:59.43 JvEAafEP.net
>>974
C言語とかの経験があれば
for(i = 0; i < 2; i++){ printf("%d\n", i); }
で、0, 1 しか表示されないからすんなり理解できるんだけど…

1008:デフォルトの名無しさん
18/08/21 19:26:23.20 mIkZeZ6h.net
>>976
それはちょっと違うだろ

1009:デフォルトの名無しさん
18/08/21 20:28:45.21 9TRNijf4.net
>>972
スライスの添字は要素と要素の「間」を示していると考えればいい
URLリンク(docs.python.jp)
> スライスの使い方をおぼえる良い方法は、インデックスが文字と文字の あいだ (between) を指しており、最初の文字の左端が 0 になっていると考えることです。そうすると、 n 文字からなる文字列中の最後の文字の右端はインデックス n となります。例えばこうです:
リンク先にASCII図があるのでそれも見て

1010:デフォルトの名無しさん
18/08/21 20:50:48.17 4zizh11G.net
>>976
よく分からないです
>>978
なるほど!
今までpythonでは0から始まるので、1文字目は0、3文字目は2と理解していたので、>>971-972 の疑問が湧いたんですが、要素と要素の間と考えれば上手く理解出来ました

1011:デフォルトの名無しさん
18/08/22 00:34:33.92 h82tfzI1.net
Ruby の範囲演算子(Range)では、
(3..5) # 3, 4, 5
(3...5) # 3, 4
.. は終端を含む。
... は終端を含まない

1012:デフォルトの名無しさん
18/08/22 01:21:48.37 h82tfzI1.net
>>975
Ruby では、
1. :col_sep フィールドの区切り文字
2. :row_sep 行区切り文字
3. :quote_char フィールドをクオートする文字
1は、カンマかタブ
2は、\r\n か\n
3は、\(バックスラッシュ)
たぶん、"a\"b"

1013:デフォルトの名無しさん
18/08/22 02:05:11.40 ETkOLyp8.net
>>981
いい加減にしろよ池沼。
そんなにruby嫌いを増やして楽しいか?

1014:デフォルトの名無しさん
18/08/22 06:33:35.91 Sg/L3P+S.net
相手するなよ…

1015:デフォルトの名無しさん
18/08/22 07:36:50.81 oqm7/Tfy.net
>>978
これって最初は戸惑うよね

1016:デフォルトの名無しさん
18/08/22 07:47:10.46 POyIOdJh.net
言語によってスライス系の関数やメソッドの引数もバラバラだからなあ
slice(from, to)
to を含んだり to - 1 だったり
slice(from, length) だったり
覚えきれないからマニュアル見ながらやってるよ

1017:デフォルトの名無しさん
18/08/22 08:38:43.98 js75fZuK.net
>>975
普通csvライブラリ使う

1018:デフォルトの名無しさん
18/08/22 16:31:49.60 Q4k/bgn4.net
>>984
最初だけな
インデントとかもそう
食わず嫌いが多すぎ
外見に惑わされず
がっつり身を取れ

1019:デフォルトの名無しさん
18/08/22 19:42:27.90 jIQXHl+4.net
身を取れってどこの方言?

1020:デフォルトの名無しさん
18/08/22 21:47:03.68 N6xAlRSo.net
デブは痩せろってことだろう

1021:デフォルトの名無しさん
18/08/22 22:00:26.08 mHU9sjBy.net
ぐぬぬ

1022:デフォルトの名無しさん
18/08/23 08:12:34.88 UTWNvtw2.net
file “<stdin>”, line1, in<module>
NameError: name ‘ファイル名やら’ is not defined

というエラーが出てしまいます。
この前まで使えてました。
何が原因かわかりますか?
>>>a=5
>>>a
5
などはできます。
.pyが動きません。

1023:デフォルトの名無しさん
18/08/23 13:03:33.23 jtErK1hR.net
ファイル名やら?

1024:デフォルトの名無しさん
18/08/23 16:53:21.50 XM3jnZax.net
ネットラジオで現在放送されている曲情報を取得して表示するスクリプトを考えてます。
URLリンク(pastebin.com)
放送局側のJSONには現在の曲情報と次回のJSONの更新時間(だいたい数秒~数十秒後)がかかれてあります。
次の曲が始まる時間が書いてあればいいんですが書かれてないので、現在の時間と次回のJSONの更新時間の差分秒でループさせて次回のJSONを取得する事にしました。
(放送局のサイトにあるWebプレイヤーのjavascriptでは20秒間隔で取得しているようでした)
放送されている曲がそのままなら更新後のJSONの中の曲情報ももちろんそのままで、次回の更新時間のみ変更されています。
曲が変わっていないのに、ループの時間が来たらその度に出力されるので、その処理は無駄だと思いました。
JSONが更新されても曲がそのままなら変わらない情報(例えば曲名など)をキャッシュとしてオンメモリのSQLiteに保存して、そこが変わってなければ出力しないようにすればいいんじゃないかと思ったんですが、他にいい方法がありますか?
教えてください。
現在のJSONの特定の項目をSQLに保存させて、PythonからSQLのそのレコードを取得する方法までは分かりました。
SQLには現在のJSONとひとつ前のJSONを記録させて、Pythonからはひとつ前のJSONのレコードを呼び出す方法も知りたいです。

1025:デフォルトの名無しさん
18/08/23 17:04:52.52 +UveuQfQ.net
曲の類似度で機械学習させて判定結果表示するのかと思った

1026:デフォルトの名無しさん
18/08/23 17:08:21.97 6XYPzAmV.net
memcached

1027:デフォルトの名無しさん
18/08/23 17:08:38.12 XM3jnZax.net
>>994
オンエア情報の分析をやってみたいんですが、その前段階のデータ取得ですでに躓いてます…

1028:デフォルトの名無しさん
18/08/23 17:20:11.29 XM3jnZax.net
>>995
どうもありがとうございます。
ググってみました。
怖そうな記事や古い記事ばかり引っかかります。
一般的にそれを使うのがいいんでしょうか?

1029:デフォルトの名無しさん
18/08/23 19:41:05.89 XM3jnZax.net
URLリンク(pastebin.com)
合ってるか分からないけれど、とりあえず動くようになりました

1030:デフォルトの名無しさん
18/08/23 19:41:36.70 XM3jnZax.net
>>998
失敗でした

1031:デフォルトの名無しさん
18/08/23 20:03:14.58 1ATD5kR7.net
男は失敗した分だけ性交に近づくんや諦めんな

1032:デフォルトの名無しさん
18/08/23 20:09:02.07 UPShE46p.net
1000GET!
Pythonのスペシャリストになります♪

1033:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 98日 8時間 59分 48秒

1034:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch