Pythonのお勉強 Part66at TECH
Pythonのお勉強 Part66 - 暇つぶし2ch127:デフォルトの名無しさん
21/11/22 16:25:58.98 v4k6kYue0.net
>>121
なるほど、or はこんな動作もするんだな
ありがとう

128:デフォルトの名無しさん
21/11/22 16:37:47.59 2MDgP0Vy0.net
>>120
よくわからんけど
その例だったらfuga=f’{hoge}’でもfuga=hogeでも同じじゃないの?

129:デフォルトの名無しさん
21/11/22 16:54:42.37 v4k6kYue0.net
>>128
変数 hoge に "piyo" が入っているのは一例で、
例えば、hoge がもし None だった場合に ""(空文字)に変換されるので、
そのまま文字列(の一部)として出力したいときに使えるようになる

130:デフォルトの名無しさん
21/11/22 16:58:50.36 2MDgP0Vy0.net
あー、hogeが存在してなくてもエラーが出ないのか

131:デフォルトの名無しさん
21/11/22 19:05:57.15 lkDGIXBn0.net
まあ、自分しか見ないソースならいいけど見ずらくなりそだな、その書き方。

132:デフォルトの名無しさん
21/11/22 19:36:29.24 5E3QcxihM.net
undefinedに対応できない、Falsyのうっかりとかあるから、褒められる書き方ではないわな。

133:デフォルトの名無しさん
21/11/22 20:16:33.77 zjNStOpV0.net
>>124
>>125
ありがとうございます、勉強になりました

134:デフォルトの名無しさん
21/11/22 22:48:58.52 XQq90Aj30.net
fuga = hoge if hoge else ‘’
fuga = hoge or ‘’
どっちも’’とか特定の偽しか来ない前提だけど冗長でない分後者を推す
公式にも前者のコード例はたぶんないし

135:デフォルトの名無しさん
21/11/22 22:51:07.19 XQq90Aj30.net
‘’ or ‘’は意味不明やわ。日本語不自由ですまん

136:デフォルトの名無しさん
21/11/22 23:21:46.71 7Z6oy9Mm0.net
perlの // みたいなのは無いのかな
a // b はaがNoneでなければaを、Noneならばbを返す

137:デフォルトの名無しさん
21/11/23 00:17:52.93 Ln8GWMq+0.net
>>120
Ruby では、and/or の遅延初期化をよく使う
p a = a || 1 #=> aが未定義のnil で偽なので、右辺が評価されて1
a = 2
p a = a || 1 #=> aが真なので、短絡評価で2。右辺は評価されない
p b = b && 1 #=> bが未定義のnilで偽なので、短絡評価でnil。右辺は評価されない
b = 2
p b = b && 1 #=> bが真なので、右辺が評価されて1

138:デフォルトの名無しさん
21/11/23 00:44:36.44 xEN2JBOU0.net
>>136
それ
x = a if a else b
じゃね?
なんか避けたいって言ってるやつ

139:デフォルトの名無しさん
21/11/23 01:00:51.66 h5ckzt1c0.net
Noneかどうかで判定したいってこと
if a
だと0でも空文字列でも偽だから曖昧になりがち
if a is not None
でぜんぜん困らんけどね

140:デフォルトの名無しさん
21/11/23 02:02:18.19 4MVUDnE90.net
ヌル合体とか欲しいよねPythonにも、

141:デフォルトの名無しさん
21/11/23 02:33:06.96 bb25eqH30.net
PEP505は全く進展ないね
3.10には入ると思ってたけど

142:デフォルトの名無しさん
21/11/23 10:09:13.49 OzyPSNUz0.net
値が入っていることを想定しているけれど、想定外にNoneだった時の為のガード
みたいな使い方をしたいんだろうけど、
そういうのは明示的にifとかtryで書いた方がいいよな

143:デフォルトの名無しさん
21/11/23 10:41:32.64 iYWDXWdAM.net
むしろ気をつけないといけないのは、想定外にTrueになってしまうケースだ。
たとえば、昔のDjangoのUserモデルのis_authenticatedは、プロパティじゃなくてメソッドだった。

144:デフォルトの名無しさん
21/11/23 13:28:59.61 Cd+od5Ii0.net
Noneも曖昧だからね
単なる未定義なのか空集合なのかエラーなのかNoneそのものなのか
ディクショナリー検索等でNoneが帰って来る仕様だがどう扱うか

145:デフォルトの名無しさん
21/11/23 13:32:03.52 KM4P0q2w0.net
結局は>>143の言うとおりなんよ…
我々はすでに知ってるんよ、中身がNullかどうかに注目した結果
普通にコード書くだけでトライキャッチスパムになってしまうJavaとかいう言語を…

146:デフォルトの名無しさん
21/11/23 13:40:48.37 OzyPSNUz0.net
エラーの情報をちゃんと持ってて、ずっと上流の呼び元までそれが伝わる言語あったな
なんだっけ
関数は引数に従って値を返します
という前提で普通の言語は設計されているけど、
関数は引数に従って値を返します。返さないこともあります
でないといけなかった

147:デフォルトの名無しさん
21/11/23 13:43:00.09 x4PI0/Sq.net
fastAPIのルーティングでデコレータ使わずに
app.add_api_route("/hoge", hoge, methods=["GET","POST"])
な感じで分離してやってみたけど、各リクエストメソッドでバリデーションが異なる時に躓いた
このまま共通のhogeだと互いのバリデーションclassが422 Unprocessable Entityを引き起こしてしまうので
app.add_api_route("/hoge", hoge, methods=["GET"])
app.add_api_route("/hoge", hogePost, methods=["POST"])
みたいにして新たにhogePost追加するという書き方に。
かと言ってデコレータ使うと
@app.get("/hoge")
def hoge():
@app.post("/hoge")
def hoge():
みたいにせっかくのルーティングの分離管理が二度手間かつ無駄に
というジレンマ
デコレータ使わない場合
>新たにhogePost追加する
というのが無難なのだろうか・・

148:デフォルトの名無しさん
21/11/23 15:02:56.49 Vfqk4Xs70.net
validator 内で GET/POST 区別したら?

149:デフォルトの名無しさん
21/11/23 15:18:14.11 nqaaqo53M.net
app.add_api_route("/hoge", hoge, methods=["GET"])
app.add_api_route("/hoge", hogePost, methods=["POST"])
これでいいんじゃね。関数として分けておけば、
validatorもデコレータ(ファクトリ)にしてみたり、いろいろ柔軟にできる。
@validate('GET')
def hoge()
@validate('POST')
def hogePost()

150:デフォルトの名無しさん
21/11/23 16:09:24.71 x4PI0/Sq.net
>>148
今はpydanticなvalidor使ってるけどクラス変数の評価前に区別する方法があったりするのだろうか
>>149
うんとりあえずはそんな感じでリクエストメソッド分だけ用意することにした


151:デフォルトの名無しさん
21/11/24 00:31:29.22 9nGxCHAd0.net
★★★★★
会話をすればポイントが増えてアイテムを買える。
次世代の大型掲示板、メルプラネット。
URLリンク(merpla.net)

152:デフォルトの名無しさん
21/11/24 04:45:08.04 ZcuSX9hJ0.net
>>144
かと言って最初からOption型やmaybeモナドでライブラリ構成されてもウザいしね

153:デフォルトの名無しさん
21/11/24 15:08:35.99 lCK/bdd80.net
名前と数値がセットになったような内容を扱う時、
セットにしただけのclass作る?

154:デフォルトの名無しさん
21/11/24 18:01:26.90 .net
キーと値がセットになった各値をどう扱うかによって
インスタンス化するか、辞書にとどめておくか、ライブラリ使うか
変えるかなぁ

155:デフォルトの名無しさん
21/11/24 21:37:03.97 YZcLPgmZ0.net
>>153
自分だけしか使わないならダラダラ書くけど
引き継ぐ可能性がある場合はクラスにしといた方がメンテしやすいんじゃないかと思ってる

156:デフォルトの名無しさん
21/11/24 22:14:50.32 lCK/bdd80.net
リファクタリングの本読んでて、オブジェクト指向の初心者は
小さなオブジェクトを使うのを嫌がる的なことが書いてあって、そんなもんかなと

157:デフォルトの名無しさん
21/11/24 22:49:34.83 Ph9UZvc+0.net
通常そういうデータってどっかのクラスのメンバ変数で辞書かnamed tupleじゃねえか?
keys:names のみのクラスってどういう状況であり得る?

158:デフォルトの名無しさん
21/11/25 00:14:54.89 Mg+a9DvFa.net
集計目的ならdefaultdict

159:デフォルトの名無しさん
21/11/25 06:32:01.73 kAK1JHHz0.net
>>157
通常と言われてもなあ

160:デフォルトの名無しさん
21/11/25 07:36:38.15 1AK1NI0N0.net
ただの名前であってキーとは言ってない
重複のない保証はない
name[i]とval[i]で管理したいところ
valでソートをかける
classにせずとも余裕でやれる
やれるけど?

161:デフォルトの名無しさん
21/11/25 07:55:54.60 wc50HyKuM.net
ただの名前をキーと言う奴はもれなくアホだと思う

162:デフォルトの名無しさん
21/11/25 09:04:00.52 kAK1JHHz0.net
>>160
じゃあその組を管理するRDB風のクラスがいいんじゃないの?
#セットという言葉の使い方が気になる

163:デフォルトの名無しさん
21/11/25 09:23:53.44 1AK1NI0N0.net
いいんじゃない、の加減なんだよな
しなければならない / 是非するべき / した方がいい / しなくてもいい / しない方がいい / しない
そのへんの温度感が経験で違うのだろう

164:デフォルトの名無しさん
21/11/26 20:45:55.13 wc7annti0.net
urlopen()をwithで取得してwithを抜けると何が起きるの?

165:デフォルトの名無しさん
21/11/26 20:48:58.06 s3jo07500.net
シメられる

166:デフォルトの名無しさん
21/11/26 22:16:46.96 nRTAMUqI0.net
URLリンク(docs.python.org)
> HTTP および HTTPS URL の場合、この関数は、わずかに修正された http.client.HTTPResponse オブジェクトを返します。
class HTTPResponse(io.BufferedIOBase)
で__exit__()はオーバーライドされてないから受信データにアクセスできなくなるだけ。
意図してる通りだろうけど
> より高水準のHTTPクライアントインターフェースとして Requestsパッケージ がお奨めです。
だし、説明が追加されることはなさそう。

167:デフォルトの名無しさん
21/11/26 22:30:51.87 wc7annti0.net
何かのリソースが自動で開放されるとかではないのか

168:デフォルトの名無しさん
21/11/27 18:48:32.12 Ce5RxaUa0.net
pygameってみんな使ってないのか?
せっかく二冊ほど読み終えたのに動かそうと思ったら
3.8じゃうごかないとか言われて途方に暮れてるんだが・・・
すなおにゲームはunityつかえってことか・・・・

169:デフォルトの名無しさん
21/11/27 19:23:42.37 QJDif1Cg0.net


170:デフォルトの名無しさん
21/11/27 19:29:31.81 IgXLbzKoM.net
>>168
たくさんあるから
 Python ゲームエンジン
で検索して目的に適してるのを選べ

171:デフォルトの名無しさん
21/11/27 19:45:13.67 JJsR/G8Z0.net
pygameでmidiが取り扱えるんだよな
ハノン弾いてリアルタイムで正確さを表示したら面白いと思って
ずっと前に作りかけて放り出してある
今ならすぐ作れそう

172:デフォルトの名無しさん
21/11/27 19:54:52.11 i0YnXTZB0.net
pygame、3.8.10で動くけど?

173:デフォルトの名無しさん
21/11/27 23:14:16.59 bPwHecSK0.net
pygame2やれ

174:デフォルトの名無しさん
21/11/28 00:16:01.67 0Kkbs8iXM.net
>>173
公式によれば3.9も
ただメインテナンスはやや停滞なんかね

175:デフォルトの名無しさん
21/11/28 00:55:05.96 YY1hk1pY0.net
色々試したらうごいたわありがとう
レースゲーム動かせるわ

176:デフォルトの名無しさん
21/11/28 00:55:37.48 YY1hk1pY0.net
普通にpipでいけたよ

177:デフォルトの名無しさん
21/11/28 09:18:19.48 swBDA3nq0.net
Pythonエンジニア認定試験のことってここでも大丈夫ですか?

178:デフォルトの名無しさん
21/11/28 09:26:25.30 6NVlX2It0.net
pythonが使いこなせるかどうかの能力なんて、
各種ライブラリのことをどこまで知ってるかだからなあ
言語仕様の部分はすぐに全員カンストするから差が出ない
標準ライブラリに限定して問題作ると、もっと便利な方法があって現実的でなくなる

179:デフォルトの名無しさん
21/11/28 09:39:22.33 o94Sh6rb0.net
そうだね
そもそもpython自体は簡単だし
ライブラリを使いこなす知識の方が重要だよね
認定試験無いよりはマシだろうけど
認知度が低いから結局試験の内容を説明しないとイケないんだよな
情弱処理持ってる方が話は早い

180:デフォルトの名無しさん
21/11/28 09:46:54.78 6+AWQcj90.net
>>177
とりあえず質問してみたら?

181:デフォルトの名無しさん
21/11/28 14:43:59.37 6NVlX2It0.net
改行区切りで書かれたファイルがあって、これを改行無しでリストに読み込みたい
そして、リストを改行区切り形式でファイルに書き出したい
内包表記で改行を削って、書く時にはjoinで改行付けるとかすればできるけど、
もう一段スマートにやれないかな

182:デフォルトの名無しさん
21/11/28 16:14:46.54 TzUvGqBa0.net
フツーにforで回してprintするだけじゃん

183:デフォルトの名無しさん
21/11/28 16:22:25.89 6NVlX2It0.net
読み込み側は、
f.read().splitlines()
ですっきり書けた
この逆をする関数があればいい
リストの各要素を改行で区切って文字列に変換するような関数
ってそれは単にjoinの特殊ケースに過ぎないから、無いのも頷ける

184:デフォルトの名無しさん
21/11/28 17:25:05.50 /1mvnnK50.net
頭悪そー

185:デフォルトの名無しさん
21/11/28 17:39:15.04 6NVlX2It0.net
あるべき姿はpickle
でもテキストエディタでも開きたいので、jsonとかyamlとか
それでも編集しにくいので、どうせリストだしと改行区切りまで落とすと、
スマートな手段が無くなる

186:デフォルトの名無しさん
21/11/28 17:57:10.63 9rjB7eJM0.net
自分でjsonEditor作るのは面白いよ。中級クラスのレベルかな。
データも list >> dict >> dict >> list >> list >> dict >>int 見たいにnest構造になってるから編集しようとすると、そこそこ扱いも難しいし。
画面構成から考えれば、いい練習問題になるよ。

187:デフォルトの名無しさん
21/11/28 19:57:15.81 Wh0Bw3X30.net
>>180
ありがとうございます!

Pythonエンジニア基礎認定試験を受けようと思うのですが、
スッキリわかるPython入門を導入書として使ってからPythonチュートリアルをしようと思うのですが、同じように勉強して合格された方はいますか?

188:デフォルトの名無しさん
21/11/28 21:05:28.72 jvvYPFKj0.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
ゲリ便をじゅるじゅると
うまそうに食ってるw

189:デフォルトの名無しさん
21/11/28 23:19:25.63 SJI7MgMY0.net
>>181
Ruby なら、配列を出力するだけで、改行区切りになるけど
ary = [ "ab", 1 ]
puts ary
出力
ab
1

190:デフォルトの名無しさん
21/11/28 23:28:07.54 6NVlX2It0.net
perlだとこんな感じ
デフォルトはスペース区切りなので改行に変更
@a = (ab, 1);
$" = "\n";
print "@a";

191:デフォルトの名無しさん
21/11/29 02:28:05.31 Tbj9SxrO0.net
>>181
writelines()じゃね?
URLリンク(techacademy.jp)

192:デフォルトの名無しさん
21/11/29 06:26:32.46 8tyLAOgdM.net
>>191
writelines(lines)
行区切り文字は追加されないので、書き込む各行の行末に行区切り文字を含ませるのが一般的です。
URLリンク(docs.python.org)
って書いてあるからダメでしょ
そもそもそのリンク先
text = [
"メロンn",
"イチゴn",
"みかんn",
"スイカn",
"ぶどうn"
]
なんて書いてる時点で信用できない

193:デフォルトの名無しさん
21/11/29 09:20:02.45 LowbA3aSH.net
テックアカデミー(笑)

194:デフォルトの名無しさん
21/11/29 09:26:34.67 LcIxau/K0.net
pythonの裾野の広さを感じさせてくれるサイトだよな

195:デフォルトの名無しさん
21/11/29 11:03:42.15 uzcK9QD5a.net
Perlの文法も気持ち悪いな。
シェルスクリプトかよ。
Pythonのやり方はJavaかC++からの輸入だな。

196:デフォルトの名無しさん
21/11/29 11:04:55.76 Tbj9SxrO0.net
>>192
ダメじゃねえかwすまんこ

197:デフォルトの名無しさん
21/11/29 11:29:59.53 FdW61dzG0.net
>>193
クソのくせにやたら検索に引っかかってくるからウザイ

198:デフォルトの名無しさん
21/11/29 11:37:52.94 pAg5RKMOd.net
テックアカデミーと侍は中学生に書き直させた方がまだ読めるようになるレベルのゴミ

199:デフォルトの名無しさん
21/11/29 11:46:02.57 FVbxGJ7fM.net
readlinesやwritelinesで改行コードを扱う方法を提供しないのがPythonクオリティー
テックアカデミーをバカにできない

200:デフォルトの名無しさん
21/11/29 12:00:17.47 7wd93ooE0.net
日本語の技術サイトはろくなのがない印象
Pythonに限らないけど

201:デフォルトの名無しさん
21/11/29 12:04:08.22 pAg5RKMOd.net
昔はインスタントPython、インスタントハッキングがjpy公式にあったから
そこで初心者は学習できた
あと結局pythonは公式ドキュメントとライブラリーリファレンス読み込むことで大抵の問題は解決する
個人的な問題を解決したかったらそれなりにキャリアのある個人ブログ探すのが安定する

202:デフォルトの名無しさん
21/11/29 12:16:52.32 BKJFnTwg0.net
>>195
Perlはシェルスクリプトの置き換えが目的そのもので順当
PythonはLuaのようなアプリ内スクリプティングな応用が当初多かったし
記述が簡便なのが特徴じゃない?なんで所々厳格でなくて歪なのが残念な点
というかJavaとは同世代だし

203:デフォルトの名無しさん
21/11/29 23:18:44.84 f/Sm4Tcj0.net
Python は、改行コードがめちゃめちゃ難しい。
global newline みたいに自動的に、OS に合わせて変換してくれる、機能はないのか?
Ruby では簡単なのに

204:デフォルトの名無しさん
21/11/29 23:25:16.24 LcIxau/K0.net
入力はどんな改行が来てもちゃんと読んで、
出力は今動いてる処理系に合わせて出力すれば、それで問題ないのでは

205:デフォルトの名無しさん
21/11/29 23:33:33.84 BKJFnTwg0.net
コード上改行はLFで統一できてる。
何も指定せずテキストモードでopenしたらCRLF→LFの変換はしてくるし
Windowsコンソールに出力したらLF→CRLFも透過的に行う。
バイトストリーム用にos.linesepも用意されてる。

206:デフォルトの名無しさん
21/11/30 06:02:42.47 uWG/s7m50.net
\nってCRLFのことだと思ってた

207:デフォルトの名無しさん
21/11/30 06:03:41.68 1Yo8WetK0.net
円得ぬ

208:デフォルトの名無しさん
21/11/30 06:04:10.45 TlXezoe70.net
どなたか
>>187
をおねがいします!

209:デフォルトの名無しさん
21/11/30 06:24:38.24 uWG/s7m50.net
まともな検定だったら、本だけ読んで通ると思えない

210:デフォルトの名無しさん
21/11/30 06:39:04.04 oWvAOz19M.net
>>205
自動なのがかえってめんどくさい。

211:デフォルトの名無しさん
21/11/30 06:49:20.24 uD8YTZMG0.net
>>208
いますよ

212:デフォルトの名無しさん
21/11/30 06:52:03.48 uPKcxb4Vd.net
>>211
ありがとうございます!
Pythonチュートリアルを読む前の参考書はどんなのを使われました?

213:デフォルトの名無しさん
21/11/30 07:02:57.59 uD8YTZMG0.net
>>212
ダラダラ質問小出しにされるのはウザいのでまとめて

214:デフォルトの名無しさん
21/11/30 07:09:37.62 uWG/s7m50.net
インタプリタなので仕方ない

215:デフォルトの名無しさん
21/11/30 07:17:14.56 uD8YTZMG0.net
じゃぁリストかタプルでちょうだい

216:デフォルトの名無しさん
21/11/30 07:35:53.88 uWG/s7m50.net
なんでリストが[]でタプルが()なんだろうな
一番使うものが一番普通な方が収まりがいいのに
辞書が{}なのも、別に[]を使っても中にkey:valがあったら辞書と判るのに
中身が無い時に区別付かないけど、そのくらい何とかなるだろ

217:デフォルトの名無しさん
21/11/30 08:13:31.92 JFviu3vk0.net
確かに辞書とsetは同じ{}だしな

218:デフォルトの名無しさん
21/11/30 08:51:28.65 XgdAJwDY0.net
>>207
'\n'がlength 1 string objectであると理解できてないのではないか
またCの'\n'も理解できてないのではないか
逆にCでのstrlen(”\n")の値とか

219:デフォルトの名無しさん
21/11/30 08:59:45.37 XgdAJwDY0.net
>>217
これまでの言語の慣習に合わせただけでは?
またそれは重要だろう

220:デフォルトの名無しさん
21/11/30 09:29:09.44 BeJPAIX2r.net
>>216
タプルは()、は少し違うな
正確にはカンマがタプルを生成する
a=1,2
もタプルになるから

221:デフォルトの名無しさん
21/11/30 09:39:37.84 uWG/s7m50.net
[1,2]は?

222:デフォルトの名無しさん
21/11/30 09:44:19.36 aruulzL70.net
>>212
みんなの

223:デフォルトの名無しさん
21/11/30 09:56:24.48 kiCF8ukr0.net
受験料高いのね
落ちたらまた受ければいいやんと思ってた
Python 3 エンジニア認定基礎試験
一般価格 11,000円(税込)
学割価格 5,500円(税込)

224:デフォルトの名無しさん
21/11/30 10:11:17.27 H2NDp+pi0.net
会社から報奨金でもでんかぎり勉強だけして試験受けないのも手
分野にもよるがまだAWS/GCPの認定や情報処理とったほうがまし

225:デフォルトの名無しさん
21/11/30 10:38:38.92 aruulzL70.net
取れるなら取っとくのがいい

226:デフォルトの名無しさん
21/11/30 11:14:18.22 kiCF8ukr0.net
認定で得られるメリット > 受験料
ってこと?

227:デフォルトの名無しさん
21/11/30 11:18:02.71 PY+WseMod.net
java金とかオラマスよりは良心的
しかし内容によるな

228:デフォルトの名無しさん
21/11/30 11:32:23.65 aruulzL70.net
取る/取らないで悩むことがなくなる。それだけ

229:デフォルトの名無しさん
21/11/30 11:48:15.66 QYuq9tUEM.net
netmikoというライブラリを使って
ネットワーク機器のログを定期的に取るようにしてるんだけど、
そのログの任意の行にある値が閾値を越えたらslackに通知させる
仕組みを作りたいんだ。
どっか参考にできるサイトない?

230:デフォルトの名無しさん
21/11/30 13:06:16.43 q2Lbl4Ky0.net
pyエンジニア試験はゴミだぞ
古典的な教本商売。無価値
名札が欲しい、とか、仕事で言われたとかなら仕方ないけど

231:デフォルトの名無しさん
21/11/30 13:18:14.78 uWG/s7m50.net
E501 line too long ってちゃんと直してる?

232:デフォルトの名無しさん
21/11/30 13:39:36.66 OYiX8qDe0.net
応用技術者試験って意味ありますか?
昔受験して一応合格したのですが、あんな試験にパスしたからといって、実務には全く役に立ちそうにありません。
IT関連の実務は経験したことがありません。

233:デフォルトの名無しさん
21/11/30 13:54:40.00 kiCF8ukr0.net
>>232
ド素人でないことの証明にはなる
資格欄に書いた方がいい

234:デフォルトの名無しさん
21/11/30 14:02:00.50 6g3UGVsgH.net
実務経験ないのに実務に役立ちそうにありません、とな
もう少し考えてから釣り糸たらせよボンクラ

235:デフォルトの名無しさん
21/11/30 14:07:37.43 OYiX8qDe0.net
例えば、ネットワーク関連の問題が応用情報技術者試験には出題されます。
ネットワークをいじったことすらありませんが、試験の問題は簡単に解くことができます。

236:デフォルトの名無しさん
21/11/30 14:28:57.07 PY+WseMod.net
>>234
人売りのシャチョさんこええw
使えねぇもんは使えねぇんだわ

237:デフォルトの名無しさん
21/11/30 15:02:04.18 TfmLZpQ00.net
youtubeでラズパイをpythonで制御できる。って動画をみて面白うそうだなって思ったけど。。
真剣に考えるとやることがないww
LEDをフラッシュさせてもしょうがないしねw

238:デフォルトの名無しさん
21/11/30 16:29:17.49 PY+WseMod.net
ラズパイ買うときはセンサも買え
なんでもいいからいくつかの種類買っとけ

239:デフォルトの名無しさん
21/11/30 16:44:07.81 EQaczNMQ0.net
LEDをフラッシュ楽しいじゃん

240:デフォルトの名無しさん
21/11/30 17:02:52.22 jOio/b0h0.net
>>238
ちっちゃいモニターもな
これがあるとないじゃ全然違う

241:デフォルトの名無しさん
21/11/30 17:19:13.85 5Q9goXwA0.net
普通は受かるんだろう

242:デフォルトの名無しさん
21/11/30 18:21:51.55 kiCF8ukr0.net
世の中には頭の悪い人がたくさんいる
・簡単な計算ができない
・文書が理解できない
応用情報だけでもヤバイ人達との差別化にはなる

243:デフォルトの名無しさん
21/11/30 20:49:57.78 jJXnE01Z0.net
>>229
slack webhook requestsで検索するとヒントが出てきそう

244:デフォルトの名無しさん
21/11/30 20:51:58.08 Yy84c4aHa.net
>>242
それはあるかも
考える事が出来ない人って結構いるんだなと仕事し始めてから知った

245:デフォルトの名無しさん
21/11/30 21:08:34.16 JFviu3vk0.net
「半分の人間は中央値以下」
バカみたいな文だが忘れがち

246:デフォルトの名無しさん
21/11/30 21:11:58.36 uWG/s7m50.net
中央値ってなに?

247:デフォルトの名無しさん
21/11/30 22:08:35.06 NQxcoDS50.net
順番に並べた時に一番真ん中の値

248:デフォルトの名無しさん
21/11/30 22:10:40.94 uWG/s7m50.net
「半分の人間は平均値以下」
と言っとけば、なるほどなーうまいこと言うな
と評価を得られたものを、厳密さに拘って機会を逃す

249:デフォルトの名無しさん
21/11/30 22:12:15.69 NQxcoDS50.net
半分の人間が平均値以下とは限らないぞ少し頭使えw

250:デフォルトの名無しさん
21/11/30 22:16:13.42 5tXmj9hK0.net
中央値知らない人だから仕方ない

251:デフォルトの名無しさん
21/11/30 22:37:05.55 NQxcoDS50.net
まさに中央値以下側の人間だなw

252:デフォルトの名無しさん
21/11/30 22:46:36.86 uWG/s7m50.net
あんまり統計的に意味がある数字じゃないよな
平均値を避けるということは標準偏差ではないと判ってるんだから、
歪度とかの情報も無いと乱暴すぎる

253:デフォルトの名無しさん
21/11/30 22:52:42.79 Vh3EpRff0.net
上から埋まっていく分野では重要

254:デフォルトの名無しさん
21/11/30 22:54:30.10 5Q9goXwA0.net
釣鐘状の分布していないときに重要

255:デフォルトの名無しさん
21/11/30 23:07:37.57 n7GuuI4Q0.net
平均値でも中央値でもいいけど
そのレベルの人の能力が分からないので
そもそも議論にならない

256:デフォルトの名無しさん
21/11/30 23:30:12.90 5Q9goXwA0.net
別に議論に加わらなくても良いですよ

257:デフォルトの名無しさん
21/12/01 00:32:10.74 cGPzHP040.net
統計検定3級おすすめ
データ分析の議論に参加できる最低ラインの保証になる

258:デフォルトの名無しさん
21/12/01 00:42:15.22 X46if3HQ0.net
>>252
ロバスト統計ってご存知無い?

259:デフォルトの名無しさん
21/12/01 01:33:15.78 J8+WBzZ00.net
山本太郎の「れいわ」が躍進したのは、
25年の自公政権で、所得の中央値が108万円低下したことを、暴いたから
世界中で全体未聞の、GDP が上がらなかった国。
ほぼ全員を貧乏にした与党
消費税のほとんどが、福祉に使われなかった。
法人税の穴埋めに使われた
でも、こういう事を知らないから、選挙では自公が圧勝する

260:デフォルトの名無しさん
21/12/01 02:17:03.28 6ah9oYXi0.net
>>252
中央値なんて中学校の数学で習うもの知らないやつが
>あんまり統計的に意味がある数字じゃないよな
は草

261:デフォルトの名無しさん
21/12/01 03:17:11.02 +DdWHpjG0.net
>>259
よくわからん
知ったのか知らないのかはっきりしなよ
あとスレ違いだからよそでやって

262:デフォルトの名無しさん
21/12/01 09:34:10.31 pw8MGucb0.net
配列の範囲外を参照したら0を返してくれたら楽に書ける
初期化してない変数は0や空文字だとしたい
そういうのは許さないのがpythonの思想なんだろうけど、
クラスライブラリとか、「よく判らんけどいい感じにやってくれる」に満ち溢れてると思うんだよな

263:デフォルトの名無しさん
21/12/01 09:49:40.77 kOoI/dimd.net
さすがに初期化してないのに0で返ってきたら違和感ありすぎる
その0どこのやつやねん

264:デフォルトの名無しさん
21/12/01 09:53:13.32 jmLWjGmX0.net
listを継承したsafelistでも作ってsafelist.get()すればいい

265:デフォルトの名無しさん
21/12/01 10:43:06.24 cGPzHP040.net
numpy.zeros(m, n) じゃダメなのか
sparsityによるけど

266:デフォルトの名無しさん
21/12/01 10:53:16.07 kOoI/dimd.net
なんていうか、出来るからといって
何でもやっていいわけではないよな…?
型宣言して型無視したり、変数名と全然違う振る舞いのコードもかけるけど
やっていいかどうかを現場で議論してるんだよな?

267:デフォルトの名無しさん
21/12/01 11:08:20.51 +DQyoA+ZD.net
>>248
「半分の人間は平均値以下」
この命題は偽だぞ
90,80,85,30
この4つの数値の平均は71.25
平均値以下は1つ

268:デフォルトの名無しさん
21/12/01 11:13:00.90 +DQyoA+ZD.net
中央値に意味が無いと言えるのは中央値と平均値の乖離が小さい場合くらいで、
そんな状況はほぼない
日本全体の平均年収が436万円であるのに対して、日本全体の年収の中央値は370万円
これの意味分かるか?

269:デフォルトの名無しさん
21/12/01 11:49:03.99 kM+Jjoc8M.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw

270:デフォルトの名無しさん
21/12/01 12:03:11.43 Qw3lWQwKr.net
>>259
Ruby氏は政治も語るのか
自分でRailsサーバー建ててそこでやってくれ
ここの本来の住人がやると、Djangoで作る

271:デフォルトの名無しさん
21/12/01 12:29:23.91 Jc7L6V7f0.net
統計は正しく使わないと意味のある結果を導き出せない
知らないで使えば無知だが
知ってて使わないのは詐欺だ

272:デフォルトの名無しさん
21/12/01 13:20:47.75 kQMiQMSXa.net
お前らほんとフワフワした話しかしねーのな

273:デフォルトの名無しさん
21/12/01 13:51:51.48 UViZzx3L0.net
バシッとお願いしやす

274:デフォルトの名無しさん
21/12/01 14:00:04.80 kOoI/dimd.net
Noneをゼロでキャッチするガイジは死ね

275:デフォルトの名無しさん
21/12/01 17:08:27.52 cGPzHP040.net
「意味がない」「正しい」
会社でこんな曖昧な表現使ってる人見たことないわ

276:デフォルトの名無しさん
21/12/01 17:48:31.00 CUbfchye0.net
>>263
DSPとかの飽和モードってそんなんだから
まぁ需要はあるんじゃね?
アセンブラ以外で実装した言語を見た事が無いから実装はされないと思うけど

277:デフォルトの名無しさん
21/12/01 18:05:55.99 AaatEAJta.net
配列はみ出してるのにそのまま処理続行されるとか悪夢でしか無い

278:デフォルトの名無しさん
21/12/01 20:10:29.91 lzZen0h80.net
世の中には3種類の人間がいる
数を数えられる人間と、数を数えられない人間だ

279:デフォルトの名無しさん
21/12/01 20:15:58.72 pw8MGucb0.net
モンティ・パイソンのスペイン宗教裁判
NOBODY expects the Spanish Inquisition!
Our chief weapon is surprise...surprise and fear.
単数で始めたのにandで繋げてしまって文法が破綻する、という部分が面白いのに、なかなか伝わらない
Our two weapons are fear and surprise...and ruthless efficiency.
言い直して複数形にしたけど、わざわざtwoを付けて3つ言うという部分はもはや惰性

280:デフォルトの名無しさん
21/12/01 20:22:16.08 vhG+/afG0.net
まったくわからない

281:デフォルトの名無しさん
21/12/01 22:31:02.94 toM1ybPg0.net
>>252
標準偏差→正規分布、の間違い?
結構統計や確率分布も勉強すると面白いよ。
積率母関数はラプラス変換で、特性関数はフーリエ変換とかね。

282:デフォルトの名無しさん
21/12/02 02:22:32.97 hQPCDoBz0.net
>>263
バカは書き込まないで

283:デフォルトの名無しさん
21/12/02 10:12:40.87 ItDkB8ePd.net
どうせJavaScriptでへんな自信付けてココに迷いこんだ口なだろうけどな

284:デフォルトの名無しさん
21/12/02 16:31:50.86 MTUgHWqu0.net
Pythonプログラマは年収が高いから魅力的なのかもな

285:デフォルトの名無しさん
21/12/02 17:15:47.74 OJ+Rt/5p0.net
Pythonを使った機械学習の本を読んでいます。
仮想環境を使うことを強く推奨すると書いてあります。
いままで、AnacondaのPythonを使ってきましたが、仮想環境を一切使ってきませんでした。
今から、仮想環境を作ってそれを使っても何も問題はないですか?

286:デフォルトの名無しさん
21/12/02 17:23:53.03 Z+Ui9JYG0.net
ライブラリのバージョンやらで混乱するくらいなら、最初から専用環境作れということでしょ
そっちのがめんどくさいと思うけど、仕事なら仕方ない

287:デフォルトの名無しさん
21/12/02 17:29:59.68 OJ+Rt/5p0.net
>>286
ありがとうございます。
趣味でやっているだけなので、必要性が実感できません。
仮想環境を作るとしても結局、最新のライブラリを使っていくだけになるのは目に見えています。

288:デフォルトの名無しさん
21/12/02 18:42:51.17 wokKeEK2a.net
趣味なら自分で必要になってから考えたらいいんじゃね

289:デフォルトの名無しさん
21/12/02 18:48:50.53 OJ+Rt/5p0.net
>>288
そうすることにします。ありがとうございました。

290:デフォルトの名無しさん
21/12/02 19:45:26.75 KxC58LYE0.net
>>284
因果関係がおかしいんだけどな。
プログラミングスキル以外が高い人(たとえは科学技術スキルやデータサイエンススキル)が、参入障壁が低いpythonに群がってるだけであって、pythonだけできたって仕方ない。
OpenCV,TensorFlow,Pytorch,jax,scipy,sclkit-learn,numpy,pandasあたりが使える人が年収高いというだけで、
それはPythonだけできても使える話ではない。
RDBや数学、統計の知識が必要なのだから。

291:デフォルトの名無しさん
21/12/02 19:52:09.42 Z+Ui9JYG0.net
稼いでる人はGoを使ってる

292:デフォルトの名無しさん
21/12/03 07:16:52.31 9BdS8doY0.net
マルチコアを活かしてくれないツールを高速化する為に、
複数を非同期で同時に走らせたい
ただ、無制限に subprocess.Popen すると負荷が100%に張り付いてやばいので、
同時起動数の上限を設定したい
で、まあpoll()がNoneかどうか見ながらsleepしながらで動くんだけど、
同じことをやりたいケースがちょこちょこあるので、自前ライブラリ化を考える
でも、そんなもんは既に誰か作ってるのでは? という気がするんだけど、どっかにある?

293:デフォルトの名無しさん
21/12/03 08:38:51.44 mlmp5wts0.net
オーバーヘッドを気にしないなら
multiprocessing.pool.Poolで任意サイズのプロセスプールを作ってそこからPopenする
threadingにも用意して欲しいんだが, 残念ながら無い
あとFutureでよければThreadPoolExecutorもワーカー数を指定できる
こちらはスレッドベースだ

294:デフォルトの名無しさん
21/12/03 09:23:02.26 9BdS8doY0.net
やっぱりそのへんになるよね
たすきに長すぎな感じで、そこまで高度なことをしたい訳でもない
IOがネックになるからそこで詰まらないように並列処理したら効率的になるだろう、という思想だけど、
もっと原始的な、4コアあるのに1コアしか使ってないじゃんというレベルで、ネックの場所が違う

295:デフォルトの名無しさん
21/12/03 11:23:24.64 7z17o3pC0.net
GNU Parallelとか

296:デフォルトの名無しさん
21/12/03 14:38:02.37 gYFV44kc0.net
ProcessPoolExecutor?

297:デフォルトの名無しさん
21/12/03 16:07:39.39 9BdS8doY0.net
100個のファイルに処理1を実行して、次に処理2を実行して、という場合、
並列でやるとしても処理1が全て完了してから処理2に取り掛かった方が安全で、
それは割と簡単にできる
処理順の依存関係まで指定してえいやっと全部一気に渡すと、済んだ人はどんどん先に進める方式だと、
効率最大でやってる内容は魔法みたいになる
キューに入れてもいいタイミングはユーザが判断してね方式だと、そんな怖いことはやりたくない
このへんの技術はとっくに枯れてる訳でもなくて、pythonのバージョンが上がるにつれて
よりシンプルに書けるようになってるっぽいので、いちばんいけてる奴だけ使いたい

298:デフォルトの名無しさん
21/12/03 16:50:15.61 MOk0xQBVd.net
>>297
よくわからんけど機械学習系のタスク管理ライブラリを当たってみるのがいいのでは

299:デフォルトの名無しさん
21/12/03 16:52:43.40 oOU/CY6L0.net
>>297
>並列でやるとしても処理1が全て完了してから処理2に取り掛かった方が安全で、
なんで安全なの?
ファイル間に依存性があるのかな?

300:デフォルトの名無しさん
21/12/03 19:20:43.02 TcDlgZdP0.net
使いこなせないから知らないけど
非同期処理ときたらasyncioじゃないの?

301:デフォルトの名無しさん
21/12/03 20:06:27.61 ilrP3hOYa.net
管理面倒だからそいうのはcelery使ってるわ

302:デフォルトの名無しさん
21/12/03 20:13:17.59 d1yD6wdJM.net
キューが空いたら依存関係見て依存してる処理が全部終わってる処理を検索してキューに入れるだけだろ
枯れてないとか意味わからん

303:デフォルトの名無しさん
21/12/03 21:05:26.85 9BdS8doY0.net
依存関係はケースバイケースすぎて処理1と処理2が終わってないと処理3ができない、
みたいなのは
p3(p1(), p2())
みたいに引数の関係で書いて、それがうまい具合に遅延して評価されればいい
その時点で結構凄いことだけど、処理10まであって、
p10(p9(p8(p7(p6(p5(p4(p3(p2(p1(
って書くのかと思うと、それも嫌
そのへんは既に解決済みでもっとかっこよく書けるらしいけど、理解できてない

304:デフォルトの名無しさん
21/12/03 21:31:34.82 nYt0d+Tj0.net
記述は依存している隣同士の関係だけでいいやん
それを動的に解釈していくか全展開するかはプログラムの中の話

305:デフォルトの名無しさん
21/12/04 13:56:24.80 OXNHy6KQ0.net
デフォルトは自動で0になってて欲しい系の代表は defaultdict だな
pythonをperl化してしまう悪魔のモジュール
いわゆるautovivification
声に出して読みたいプログラミング用語

306:デフォルトの名無しさん
21/12/04 14:43:09.92 clmSwDt/0.net
defaultdict()
引数なしで0はドキュメンテーション上ひどいけど
defaultdict(0)
callableじゃない引数ならcopy()する動作でもとは思う

307:デフォルトの名無しさん
21/12/05 22:33:04.61 69iYFx7F0.net
東熱でデビューまだ?

308:デフォルトの名無しさん
21/12/05 22:50:01.39 gzedxBTO0.net
tipsとか説明してる動画がいろいろあるけど、
どう考えても動画で見るよりも文字のサイトで見た方が効率いいな
アニメーションで説明するならまだしも、コード映して音声で説明するだけだし

309:デフォルトの名無しさん
21/12/06 09:58:30.45 bmhBnFtY0.net
その通り
でも見るより聞くほうが頭に入るっていう人はいる
そして動画なら普通は飛ばされるちょっとしたエラーへの対応なんかも映されてたりしていい
そういう意味じゃまぁまぁ分かってるぐらいのやつが試行錯誤しながらやってる動画が一番いいかもしれない動画なら
それと小技100選みたいなのは動画のほうがサクサク見れていいなって思った

310:デフォルトの名無しさん
21/12/06 10:16:07.53 K9NwbhKq0.net
動画はチュートリアル向きだね

311:デフォルトの名無しさん
21/12/06 10:24:06.22 r+k7u56QM.net
仮に多少わかりやすかったとしても時間効率が悪すぎる

312:デフォルトの名無しさん
21/12/06 10:25:23.41 KAUrNTmh0.net
ん、今のとこ理解が追いついてない
と一時停止するのはまだいいとしても、
そこはもう判ったからくどく言わなくていい、
という部分だけ早送りするのは困難

313:デフォルトの名無しさん
21/12/06 13:10:34.16 Fv6sj5de0.net
いわゆる
教育サイトのヤツって制限つよいから使えんな
YouTubeのが倍速できていい

314:デフォルトの名無しさん
21/12/06 13:35:16.73 bFLz1Hfed.net
Udemyは倍速できた
開講者によって違うのかもしれんけど

315:デフォルトの名無しさん
21/12/06 15:04:28.27 V3VnXKsr0.net
python始めたての頃、日本語でpythonを解説してる動画があったんで見てみたけど、
内容の良し悪し以前にタイプ音が耳障りすぎて見てられなかったな
カチャカチャ…ッターン!!ってまんま昔のミサワの画像みたいな

316:デフォルトの名無しさん
21/12/06 17:57:42.22 fIaDMlsG0.net
こういうプログラム組みたい、みたいなのはここでもいいのですか?

317:デフォルトの名無しさん
21/12/06 18:55:42.20 K9NwbhKq0.net
Pythonが主題ならいいよ

318:デフォルトの名無しさん
21/12/06 19:03:22.19 fIaDMlsG0.net
python **.sy ディレクトリ1 ディレクトリ2
としてコマンドライン引数2個を使い
ディレクトリ1から特定条件のファイル・ファイルサイズを抽出し
外部プログラムを利用して処理しディレクトリ2の場所にファイル名でフォルダを新規作成しそこにアウトプットしたいのですが
これは難しいですか?
半日かけて色々こねくり回してもファイルを抽出するところまでしかできませんでした

319:デフォルトの名無しさん
21/12/06 19:11:53.57 4dOWqmq10.net
いいよ

320:デフォルトの名無しさん
21/12/06 19:14:31.95 KAUrNTmh0.net
どうせなら入力用と出力用は順不同でいけるように、-i -o オプションとか付けよう

321:デフォルトの名無しさん
21/12/06 19:16:54.93 YFGCwo230.net
Pythonを先週から使っててORMのdatasetを試してみてるんですけど、
find()に WHERE `hoge` > 10 相当の条件って指定できるんですか?

322:デフォルトの名無しさん
21/12/06 19:40:42.62 +xtv5Wsa0.net
>>321
URLリンク(dataset.readthedocs.io)
公式サイトみてる?
非公式のまとめサイトはあくまで公式サイトを補完するもの

323:デフォルトの名無しさん
21/12/06 20:13:19.50 YFGCwo230.net
>>322
やさしいのぅ。有難うございます。

324:デフォルトの名無しさん
21/12/06 21:04:00.66 AXyP6TkQa.net
シンプルなORMないかなーって色々触ってみるけどあれこれ機能が足りず結局SQLAlchemyになっちゃうよな

325:デフォルトの名無しさん
21/12/06 21:10:58.44 JyBQF4AA0.net
>>318
難しくない。shutilかな。

326:デフォルトの名無しさん
21/12/06 21:33:56.87 fIaDMlsG0.net
>>325
できればヒントやサンプルをいただけませんか

327:デフォルトの名無しさん
21/12/06 21:42:01.16 K9NwbhKq0.net
ヒント : subprocess

328:デフォルトの名無しさん
21/12/06 22:13:57.72 rLSBlzT30.net
>>326
やろうとしてることを段階的に分けて書いてみて

329:デフォルトの名無しさん
21/12/06 22:22:51.24 fIaDMlsG0.net
>>328
1.ファイルの入ったフォルダをコマンドライン引数1に設定する
2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
3.抽出したファイルを外部ツールにかける
4.外部ツールにかけた結果をコマンドライン2引数のディレクトリ内に展開する
5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
こんな感じです
for + os.walkとendswithでファイル一覧を抽出できてもその抽出したファイルをその先に持って行ったり
外部ツール利用の方法が全くわかりません

330:デフォルトの名無しさん
21/12/06 23:02:13.62 KAUrNTmh0.net
streamlinkはpythonで書かれてるのに、
pythonからの使い方が判らないので、subprocessでpython呼び出してる

331:デフォルトの名無しさん
21/12/06 23:06:57.52 +xtv5Wsa0.net
Pythonでやるからややこしい
1,2はfind
3,4,5はxargs + sh(cd, mkdir)
でできる内容
Pythonでやるのがお題ならごめん

332:デフォルトの名無しさん
21/12/06 23:16:45.17 fIaDMlsG0.net
>>331
バッチでってことですか?
FFMPEGがワイルドカード対応してなくて無理でした

333:デフォルトの名無しさん
21/12/06 23:24:01.09 uKiaXwwm0.net
シェルの方が早そうだね

334:デフォルトの名無しさん
21/12/06 23:29:51.84 rLSBlzT30.net
>>329
>1.ファイルの入ったフォルダをコマンドライン引数1に設定する
>2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
>5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
2と5の間はとりあえずスキップして、ここだけの実装は可能?

335:デフォルトの名無しさん
21/12/06 23:31:26.15 fIaDMlsG0.net
>>334
2の途中で詰まりました
抽出したファイルの扱い方がわからなく・・・

336:デフォルトの名無しさん
21/12/06 23:49:14.76 R0qeSVmL0.net
配列に入れればいいだけじゃね

337:デフォルトの名無しさん
21/12/07 00:14:41.57 ebSZa7bB0.net
>>332
バッチてことはWin環境なんかな
Pythonで解決した後でもいいからPowerShellもしらべてみて
習得にあるていど時間かかるけどやれることが広がるよ
あとワイルドカード展開するのはコマンドじゃなくて通常はシェルの仕事

338:デフォルトの名無しさん
21/12/07 00:34:04.97 P3Md4odo0.net
すみませんバッチファイルの本を買って勉強します
ありがとうございました

339:デフォルトの名無しさん
21/12/07 00:59:42.03 O2KWEQqW0.net
実際問題として、PS使うならPythonで書こうとするかなぁ
他のOSでも使うことができるし
とりあえずバッチとwshは使いたくない

340:デフォルトの名無しさん
21/12/07 01:31:43.51 q8J3SSC40.net
find -execかfind xargsが鉄板だと思うけど
外部コマンドのstdout/stderr出力をPython側でキャプチャする必要なければそんなにややこしくもない
for path in Path(search_dir).glob(pattern):
__if path.stat().st_size > 1000:
____dir_path = Path(output_dir).joinpath(path.stem)
____dir_path.mkdir()
____new_path = dir_path.joinpath(path.name)
____os.system(f'echo "{path}, {dir_path}" > "{new_path}"')
(同じファイル名があった場合の対処はしてない)

341:デフォルトの名無しさん
21/12/07 01:36:39.28 MjkMHobt0.net
winでもwsl2で >331が書いてる手順でヤレる
powershellも覚えれば便利なんだろうけど…

342:デフォルトの名無しさん
21/12/07 06:51:56.92 BLeYwod+0.net
>>329
2.は os.listdirすればリストで返してくれる
この辺見てみた?
URLリンク(note.nkmk.me)

343:デフォルトの名無しさん
21/12/07 07:18:25.74 Jl0mhXXA0.net
使うのがffmpegの場合、他にも考えるべきことが大量にあるので、
一括ではうまく行かないんだよな
何が来ても自分好みのファイルに変換する万能スクリプトを一つ書いて、
それに処理するファイル一覧を食わせる方式に落ち着いた

344:デフォルトの名無しさん
21/12/07 08:57:52.26 BFhf39Z30.net
awk,sedが必要になったらシェルスクリプトを諦めて全部Pythonで書くかな。
あれらを今から学習する気力が湧かない。

345:デフォルトの名無しさん
21/12/07 09:05:21.33 Jl0mhXXA0.net
PSはPSでしかできないパワフルなことがあるので、
その部分だけPSでやるのがいい
windowsの底の部分を簡単にいじれるのはPSだけ

346:デフォルトの名無しさん
21/12/07 10:45:42.99 F2U4yKHS0.net
質問するならコード貼ってほしいな
このスレのテンプレにpaste用サイトが書いてある

347:デフォルトの名無しさん
21/12/07 11:08:12.05 A/pvwvVNr.net
PSはlinuxでもosxでも動くし、あれだけで出来ること結構あるから知ってると便利だよな

348:デフォルトの名無しさん
21/12/07 11:49:17.79 G7aiaFNj0.net
ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?

349:デフォルトの名無しさん
21/12/07 12:01:37.39 Jl0mhXXA0.net
適度にsleepする

350:デフォルトの名無しさん
21/12/07 12:17:07.83 yRaAbrIt0.net
手動でブラウザ操作したときまんまsleepしたらいいだけ
サーバ構築する側はボットなんか勘定にいれてコスト設計してないんだから

351:デフォルトの名無しさん
21/12/07 12:22:57.09 P3Md4odo0.net
>>342
for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith("〇〇"):
os.path.getsize(ts)
print(os.path.join(file))
これでファイルは取得できるのですがそのファイルを参照する方法がわからず・・・

352:デフォルトの名無しさん
21/12/07 12:24:12.30 P3Md4odo0.net
こうでした
for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith(".〇〇"):
print(os.path.join(file))

353:デフォルトの名無しさん
21/12/07 13:08:03.12 F2U4yKHS0.net
並列数1なら大したことないけどね
応答時間200ミリ秒なら、毎秒最大5リクエストだし

354:デフォルトの名無しさん
21/12/07 13:09:23.97 A/pvwvVNr.net
参照って何をしたいのか知らないけど、ファイル名取得出来てるんだからオープンするのも他のコマンドの引数に与えるのも可能では

355:デフォルトの名無しさん
21/12/07 13:32:14.96 lMfMxSoR0.net
>>352
Ruby では、glob に拡張子も指定できる
# 絶対パスのディレクトリ名の後ろに、*.txt を付ける。
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/**/*.txt"
separator = "-" * 30 + "\n"
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
puts "#{ separator }#{ full_path }\n#{ separator }" + File.read( full_path )
end

356:デフォルトの名無しさん
21/12/07 14:32:51.33 Jl0mhXXA0.net
できないglobなんか無いだろ
from pathlib import Path
p = Path("c:/path")
for filename in p.glob("*.mp4"):
print(filename)

357:デフォルトの名無しさん
21/12/07 15:09:33.84 NCVMykAH0.net
つかglobを何だと思ってんだガイジは

358:デフォルトの名無しさん
21/12/07 15:23:50.74 F2U4yKHS0.net
スレタイ読めない人がいるな

359:デフォルトの名無しさん
21/12/07 21:21:55.14 3sCD52Waa.net
オワコンのruby薦められても困る

360:デフォルトの名無しさん
21/12/07 21:40:58.38 Jl0mhXXA0.net
rubyとperlとVBとobjective-Cの人は、脱出するのが早いほど幸せになれる

361:デフォルトの名無しさん
21/12/07 21:43:22.87 P3Md4odo0.net
すんげえ苦労したけどなんとか形になりました
バッチなのですれ違いすみません
もっと勉強して最適化していきます
わかってしまえばすごくシンプル
set Tool="Tool"
set template="template"
for %%f in (%1\*.〇〇) do (
mkdir "%2\%%~nf"
%Tool% -i %%f -o "%2\%%~nf\%%~nf.dgi" -a -e
del "%2\%%~nf\%%~nf.log
)

362:デフォルトの名無しさん
21/12/07 22:06:22.51 zHaA7V/Y0.net
ワロタw

363:デフォルトの名無しさん
21/12/07 22:58:20.49 I8679kEJ0.net
嘘だろ

364:デフォルトの名無しさん
21/12/07 23:00:21.81 oV2OkogX0.net
クソワロタ

365:デフォルトの名無しさん
21/12/07 23:12:35.70 7GhYBix30.net
templateって何?

366:デフォルトの名無しさん
21/12/07 23:44:21.65 F2U4yKHS0.net
ポテンシャルを感じる

367:デフォルトの名無しさん
21/12/08 01:37:02.26 .net
from datetime import datetime, timedelta
import pytz
dt=datetime.now(pytz.timezone("Asia/Tokyo"))
print(dt)
print(dt.today())# timezone変更 不適用
print(dt.time())# timezone変更 適用
dt_utc=dt.astimezone(pytz.timezone("UTC"))
print(dt_utc)
print(dt_utc.today())#
print(dt_utc.time())#
#2021-12-08 01:34:40.591170+09:00
#2021-12-07 16:34:40.592894
#01:34:40.591170
#2021-12-07 16:34:40.591170+00:00
#2021-12-07 16:34:40.598068
#16:34:40.591170

.today()てtimezone変更引き継いで?くれないんですね・・

368:デフォルトの名無しさん
21/12/08 02:08:39.64 uCheTDCk0.net
Pythonで組みなおしています
デフォルト関数も多そうだし条件分岐とかが簡単そうですが
外部ツール起動に対するオプション調査中です
ファイル名を取得してその名前でディレクトリを作成するところまではできました
import sys
import os
import subprocess
for i in os.listdir(sys.argv[1]):
file, ext = os.path.splitext(i)
os.mkdir(sys.argv[2]+file)

369:デフォルトの名無しさん
21/12/08 07:20:30.37 OmzTkGs60.net
>>367
参考になるかも
URLリンク(qiita.com)

370:デフォルトの名無しさん
21/12/08 13:19:52.67 uCheTDCk0.net
外部ツールに抽出ファイルをかけるのが難しいですね
%Tool% -i %%f -o "%2\%%~nf\%%~nf.〇〇〇" -a -e
この処理をPythonでどうやるのか?
subprocess.runあたりを使うっぽいのですがその後の書き方や処理方法が不透明
ターミナルにパイプして処理する?とかになるなら結局バッチかパワーシェルで
統一した方が早いのでしょうか

371:デフォルトの名無しさん
21/12/08 13:33:21.38 5HATgl/c0.net
標準出力を取得して、とかやるとそれ用のことを書かないといけないけど、
実行させるだけなら超シンプル
subprocessから取得したデータをパイプでffmpegに渡して、
とかやらせてちゃんと動くとちょっと嬉しい

372:デフォルトの名無しさん
21/12/08 13:43:19.97 lsXABI8+d.net
ニコ生のえっちなやつ録画したいニキおつ

373:デフォルトの名無しさん
21/12/08 15:21:18.60 M4uEosNe0.net
>>370
バッチで用が済むなら終わりでいいのでは
汚いスクリプトなんてプログラミングの勉強にならないし

374:デフォルトの名無しさん
21/12/08 16:12:58.05 5HATgl/c0.net
m = re.search('pattern', str)
if m:
  item = m.group(1)
みたいには書けるけど、ifの中にmの取得を一緒に書けない?
そうでないと、if elif elseで書けない

375:デフォルトの名無しさん
21/12/08 16:16:26.00 Z7ccVyDn0.net
昔のpythonでは書けなかったんですが
python3.8からassignment expression := ができるようになりました

376:デフォルトの名無しさん
21/12/08 16:22:47.75 5HATgl/c0.net
おおー、できるのか
でもうちのは3.7だからできないわ
会社のは3.6だからもっとできない
変な互換性のなさを作り込むよりは、3.6でもやれる方法を考えよう

377:デフォルトの名無しさん
21/12/08 16:31:06.57 cmZgcxZR0.net
>>370
各変数を別途取得して、subprocess.runで起動するアプリの引数として与えるだけ
自分で引数をオプションとして与えたいなら、argparseを使う

378:デフォルトの名無しさん
21/12/08 16:31:50.71 lsXABI8+d.net
item = data.get(1)
if item:
id(item)
#3.8
if item:= data.get(1):
id(item)

379:デフォルトの名無しさん
21/12/08 16:51:20.77 e5XneN8e0.net
pythonの野郎宗旨替えしやがったのか

380:デフォルトの名無しさん
21/12/08 17:00:08.30 cmZgcxZR0.net
>>374
スコープの話なら、関数こさえてreturnで拾うという手もあるけど、めんどくさいね

381:デフォルトの名無しさん
21/12/08 17:02:23.43 5HATgl/c0.net
無駄な処理は増えるけど
m1 = re.~
m2 = re.~
としておいてから、
if m1:
elif m2:
なら書ける
代入が評価もできる仕組みは、書き間違えてバグるからというよりは、
単純に読みにくくなる

382:デフォルトの名無しさん
21/12/08 17:12:25.01 +2BbFlMUa.net
Pythonのifのスコープは脳に優しくないな

383:デフォルトの名無しさん
21/12/08 17:22:50.60 aaXV5Kk80.net
プライベートだと思っていた彼女のホールがグローバルだった

384:デフォルトの名無しさん
21/12/08 19:30:48.14 5HATgl/c0.net
入力行をsplitして取り込む
arg1, arg2, arg3 = line.split('\t')
みたいな感じ
でも、入力がちゃんとしてなくて数が多くても少なくてもエラーになる
そこはよしなにやって欲しい
足りない部分はNoneで埋めて、余った分は捨てていい
というええかげんなことをしようと思ったら、ええかげん関数を作るしかないのかな

385:デフォルトの名無しさん
21/12/08 19:35:03.01 lsXABI8+d.net
hash = {'ぐれ':1, 'ぷ':2}
matched = m.group(1)
if not hash.get(matched):
print('i want to write else case')
elif hash[matched]== 1:
print('do 1 case')

???

386:デフォルトの名無しさん
21/12/08 21:14:52.99 /jR8/f4s0.net
>>384
arg1, arg2, arg3, *_ = line.split('¥t') + [None, None]

387:デフォルトの名無しさん
21/12/08 23:31:45.91 5HATgl/c0.net
+ でいいんだな

388:デフォルトの名無しさん
21/12/09 02:15:13.68 WjLFVkiy0.net
すみません、質問なのですが、
newline= ってpython3じゃないと使えないのですか?

389:デフォルトの名無しさん
21/12/09 02:26:38.04 y+vTbIG00.net
調べてから質問してる?

390:デフォルトの名無しさん
21/12/09 02:29:06.32 WjLFVkiy0.net
してる

391:デフォルトの名無しさん
21/12/09 05:36:26.42 .net
"newline= を使う"ってなに?
文字列の中に改行コードは使えるか
って意味じゃないよね
それだとそっこーぐぐったら出てくるし。
なんかのライブラリやらフレームワーク的な話なのだろうか

392:デフォルトの名無しさん
21/12/09 05:39:43.24 .net
あるいはクロスプラットフォームでのCRLFかLFかみたいな話かな

393:デフォルトの名無しさん
21/12/09 06:51:10.51 7v43kIFS0.net
openのオプションでしょ

394:デフォルトの名無しさん
21/12/09 08:02:22.78 I94H5Ioy.net
>>388
python3.8.1
URLリンク(techiedelight.com)
python2.7.17
URLリンク(techiedelight.com)

395:デフォルトの名無しさん
21/12/09 08:48:12.08 zIpIn5ri0.net
beautifulsoupでattributeerror: nonetype nas no attribute stringが発生するんだけどnoneになることが想定される場合は一々いっこっこifでかこってやらないとだめなの?

396:デフォルトの名無しさん
21/12/09 08:56:56.15 zIpIn5ri0.net
ifっていうかtryか

397:デフォルトの名無しさん
21/12/09 08:59:10.31 7v43kIFS0.net
最大限何でも見つかるようにしとくから、緩めるのはユーザ側でやってね
という姿勢は間違ってないんだけどな
元から緩かったら厳しくしようがない

398:デフォルトの名無しさん
21/12/09 09:52:10.18 q+Lg0FmZ0.net
自分の管理できないデータを拾おうとする場合は
例外処理は必須だと思う

399:デフォルトの名無しさん
21/12/09 10:42:48.76 WjLFVkiy0.net
>>394
ありがとうございます!!!

400:デフォルトの名無しさん
21/12/09 11:32:41.22 LJEXrIakM.net
>>395
ifかor
Pythonにはsafe navigation operatorがないからスクレイピングコードは煩雑になりがち
URLリンク(en.wikipedia.org)
要素がなければ空文字のようなデフォルト値を返す汎用的関数を自分で用意すると少し読みやすくなる

401:デフォルトの名無しさん
21/12/09 11:51:24.51 q+Lg0FmZ0.net
JSONなんかだと、get()で拾えばまぁ困らんな

402:デフォルトの名無しさん
21/12/09 11:58:39.98 LJEXrIakM.net
BeautifulSoupじゃなくてScrapyなら少しマシ
公式ドキュメントの質は段違い

403:デフォルトの名無しさん
21/12/09 12:37:45.04 LJEXrIakM.net
>>401
指定した要素がない状況を考慮する必要があれば階層ごとに自分でハンドリングが必要だからgetだけじゃダメなんだよね
safe navigation operatorがあればlodashのgetやrubyのdigのようなのが簡単に作れる
近いところでglomがあるけど処理を分割したり、つなげたりできないから使い勝手が悪い

404:デフォルトの名無しさん
21/12/09 14:43:48.67 kmW2UpC80.net
bsのドキュメントってなんであんな書き方なんかな


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