!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その55
https://mevius.5ch.net/test/read.cgi/tech/1633070807/
〇前スレ〇
Pythonのお勉強 Part65
https://mevius.5ch.net/test/read.cgi/tech/1621749112/
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
Pythonのお勉強 Part66
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1f3b-7lFM)
2021/11/12(金) 07:48:11.11ID:vp8lzav70317デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/06(月) 18:55:42.20ID:K9NwbhKq0 Pythonが主題ならいいよ
318デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/06(月) 19:03:22.19ID:fIaDMlsG0 python **.sy ディレクトリ1 ディレクトリ2
としてコマンドライン引数2個を使い
ディレクトリ1から特定条件のファイル・ファイルサイズを抽出し
外部プログラムを利用して処理しディレクトリ2の場所にファイル名でフォルダを新規作成しそこにアウトプットしたいのですが
これは難しいですか?
半日かけて色々こねくり回してもファイルを抽出するところまでしかできませんでした
としてコマンドライン引数2個を使い
ディレクトリ1から特定条件のファイル・ファイルサイズを抽出し
外部プログラムを利用して処理しディレクトリ2の場所にファイル名でフォルダを新規作成しそこにアウトプットしたいのですが
これは難しいですか?
半日かけて色々こねくり回してもファイルを抽出するところまでしかできませんでした
319デフォルトの名無しさん (ワッチョイ 2c68-wVd4)
2021/12/06(月) 19:11:53.57ID:4dOWqmq10 いいよ
320デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/06(月) 19:14:31.95ID:KAUrNTmh0 どうせなら入力用と出力用は順不同でいけるように、-i -o オプションとか付けよう
321デフォルトの名無しさん (ワッチョイ d2b1-PP5C)
2021/12/06(月) 19:16:54.93ID:YFGCwo230 Pythonを先週から使っててORMのdatasetを試してみてるんですけど、
find()に WHERE `hoge` > 10 相当の条件って指定できるんですか?
find()に WHERE `hoge` > 10 相当の条件って指定できるんですか?
322デフォルトの名無しさん (ワッチョイ e1af-Oe9c)
2021/12/06(月) 19:40:42.62ID:+xtv5Wsa0323デフォルトの名無しさん (ワッチョイ d2b1-PP5C)
2021/12/06(月) 20:13:19.50ID:YFGCwo230324デフォルトの名無しさん (アウアウエー Sa6a-mSww)
2021/12/06(月) 21:04:00.66ID:AXyP6TkQa シンプルなORMないかなーって色々触ってみるけどあれこれ機能が足りず結局SQLAlchemyになっちゃうよな
325デフォルトの名無しさん (ワッチョイ 4697-rZA/)
2021/12/06(月) 21:10:58.44ID:JyBQF4AA0 >>318
難しくない。shutilかな。
難しくない。shutilかな。
326デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/06(月) 21:33:56.87ID:fIaDMlsG0 >>325
できればヒントやサンプルをいただけませんか
できればヒントやサンプルをいただけませんか
327デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/06(月) 21:42:01.16ID:K9NwbhKq0 ヒント : subprocess
328デフォルトの名無しさん (ワッチョイ 0333-Z6Z9)
2021/12/06(月) 22:13:57.72ID:rLSBlzT30 >>326
やろうとしてることを段階的に分けて書いてみて
やろうとしてることを段階的に分けて書いてみて
329デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/06(月) 22:22:51.24ID:fIaDMlsG0 >>328
1.ファイルの入ったフォルダをコマンドライン引数1に設定する
2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
3.抽出したファイルを外部ツールにかける
4.外部ツールにかけた結果をコマンドライン2引数のディレクトリ内に展開する
5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
こんな感じです
for + os.walkとendswithでファイル一覧を抽出できてもその抽出したファイルをその先に持って行ったり
外部ツール利用の方法が全くわかりません
1.ファイルの入ったフォルダをコマンドライン引数1に設定する
2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
3.抽出したファイルを外部ツールにかける
4.外部ツールにかけた結果をコマンドライン2引数のディレクトリ内に展開する
5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
こんな感じです
for + os.walkとendswithでファイル一覧を抽出できてもその抽出したファイルをその先に持って行ったり
外部ツール利用の方法が全くわかりません
330デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/06(月) 23:02:13.62ID:KAUrNTmh0 streamlinkはpythonで書かれてるのに、
pythonからの使い方が判らないので、subprocessでpython呼び出してる
pythonからの使い方が判らないので、subprocessでpython呼び出してる
331デフォルトの名無しさん (ワッチョイ e1af-Oe9c)
2021/12/06(月) 23:06:57.52ID:+xtv5Wsa0 Pythonでやるからややこしい
1,2はfind
3,4,5はxargs + sh(cd, mkdir)
でできる内容
Pythonでやるのがお題ならごめん
1,2はfind
3,4,5はxargs + sh(cd, mkdir)
でできる内容
Pythonでやるのがお題ならごめん
332デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/06(月) 23:16:45.17ID:fIaDMlsG0333デフォルトの名無しさん (ワッチョイ f2da-m+op)
2021/12/06(月) 23:24:01.09ID:uKiaXwwm0 シェルの方が早そうだね
334デフォルトの名無しさん (ワッチョイ 0333-Z6Z9)
2021/12/06(月) 23:29:51.84ID:rLSBlzT30 >>329
>1.ファイルの入ったフォルダをコマンドライン引数1に設定する
>2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
>5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
2と5の間はとりあえずスキップして、ここだけの実装は可能?
>1.ファイルの入ったフォルダをコマンドライン引数1に設定する
>2.フォルダ内から特定の拡張子かつ一定以上のファイルサイズのものを抽出する
>5.フォルダは4の指定ディレクトリ内にファイル名で新規作成する
2と5の間はとりあえずスキップして、ここだけの実装は可能?
335デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/06(月) 23:31:26.15ID:fIaDMlsG0336デフォルトの名無しさん (ワッチョイ b4bd-qcc3)
2021/12/06(月) 23:49:14.76ID:R0qeSVmL0 配列に入れればいいだけじゃね
337デフォルトの名無しさん (ワッチョイ e1af-Oe9c)
2021/12/07(火) 00:14:41.57ID:ebSZa7bB0 >>332
バッチてことはWin環境なんかな
Pythonで解決した後でもいいからPowerShellもしらべてみて
習得にあるていど時間かかるけどやれることが広がるよ
あとワイルドカード展開するのはコマンドじゃなくて通常はシェルの仕事
バッチてことはWin環境なんかな
Pythonで解決した後でもいいからPowerShellもしらべてみて
習得にあるていど時間かかるけどやれることが広がるよ
あとワイルドカード展開するのはコマンドじゃなくて通常はシェルの仕事
338デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/07(火) 00:34:04.97ID:P3Md4odo0 すみませんバッチファイルの本を買って勉強します
ありがとうございました
ありがとうございました
339デフォルトの名無しさん (ワッチョイ 9763-wVd4)
2021/12/07(火) 00:59:42.03ID:O2KWEQqW0 実際問題として、PS使うならPythonで書こうとするかなぁ
他のOSでも使うことができるし
とりあえずバッチとwshは使いたくない
他のOSでも使うことができるし
とりあえずバッチとwshは使いたくない
340デフォルトの名無しさん (ワッチョイ 0c01-zWK8)
2021/12/07(火) 01:31:43.51ID:q8J3SSC40 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}"')
(同じファイル名があった場合の対処はしてない)
外部コマンドの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デフォルトの名無しさん (ワッチョイ e75f-RDhU)
2021/12/07(火) 01:36:39.28ID:MjkMHobt0 winでもwsl2で >331が書いてる手順でヤレる
powershellも覚えれば便利なんだろうけど…
powershellも覚えれば便利なんだろうけど…
342デフォルトの名無しさん (ワッチョイ 2c68-wVd4)
2021/12/07(火) 06:51:56.92ID:BLeYwod+0343デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/07(火) 07:18:25.74ID:Jl0mhXXA0 使うのがffmpegの場合、他にも考えるべきことが大量にあるので、
一括ではうまく行かないんだよな
何が来ても自分好みのファイルに変換する万能スクリプトを一つ書いて、
それに処理するファイル一覧を食わせる方式に落ち着いた
一括ではうまく行かないんだよな
何が来ても自分好みのファイルに変換する万能スクリプトを一つ書いて、
それに処理するファイル一覧を食わせる方式に落ち着いた
344デフォルトの名無しさん (ワッチョイ 4697-rZA/)
2021/12/07(火) 08:57:52.26ID:BFhf39Z30 awk,sedが必要になったらシェルスクリプトを諦めて全部Pythonで書くかな。
あれらを今から学習する気力が湧かない。
あれらを今から学習する気力が湧かない。
345デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/07(火) 09:05:21.33ID:Jl0mhXXA0 PSはPSでしかできないパワフルなことがあるので、
その部分だけPSでやるのがいい
windowsの底の部分を簡単にいじれるのはPSだけ
その部分だけPSでやるのがいい
windowsの底の部分を簡単にいじれるのはPSだけ
346デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/07(火) 10:45:42.99ID:F2U4yKHS0 質問するならコード貼ってほしいな
このスレのテンプレにpaste用サイトが書いてある
このスレのテンプレにpaste用サイトが書いてある
347デフォルトの名無しさん (オッペケ Sr5f-zXcE)
2021/12/07(火) 11:08:12.05ID:A/pvwvVNr PSはlinuxでもosxでも動くし、あれだけで出来ること結構あるから知ってると便利だよな
348デフォルトの名無しさん (ワッチョイ 9f01-YCX0)
2021/12/07(火) 11:49:17.79ID:G7aiaFNj0 ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?
349デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/07(火) 12:01:37.39ID:Jl0mhXXA0 適度にsleepする
350デフォルトの名無しさん (ワッチョイ 4b7c-Oe9c)
2021/12/07(火) 12:17:07.83ID:yRaAbrIt0 手動でブラウザ操作したときまんまsleepしたらいいだけ
サーバ構築する側はボットなんか勘定にいれてコスト設計してないんだから
サーバ構築する側はボットなんか勘定にいれてコスト設計してないんだから
351デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/07(火) 12:22:57.09ID:P3Md4odo0 >>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))
これでファイルは取得できるのですがそのファイルを参照する方法がわからず・・・
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デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/07(火) 12:24:12.30ID:P3Md4odo0 こうでした
for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith(".〇〇"):
print(os.path.join(file))
for curDir, dirs, files in os.walk(sys.argv[1]):
for file in files:
if file.endswith(".〇〇"):
print(os.path.join(file))
353デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/07(火) 13:08:03.12ID:F2U4yKHS0 並列数1なら大したことないけどね
応答時間200ミリ秒なら、毎秒最大5リクエストだし
応答時間200ミリ秒なら、毎秒最大5リクエストだし
354デフォルトの名無しさん (オッペケ Sr5f-zXcE)
2021/12/07(火) 13:09:23.97ID:A/pvwvVNr 参照って何をしたいのか知らないけど、ファイル名取得出来てるんだからオープンするのも他のコマンドの引数に与えるのも可能では
355デフォルトの名無しさん (ワッチョイ d02c-oWHg)
2021/12/07(火) 13:32:14.96ID:lMfMxSoR0 >>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
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デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/07(火) 14:32:51.33ID:Jl0mhXXA0 できないglobなんか無いだろ
from pathlib import Path
p = Path("c:/path")
for filename in p.glob("*.mp4"):
print(filename)
from pathlib import Path
p = Path("c:/path")
for filename in p.glob("*.mp4"):
print(filename)
357デフォルトの名無しさん (ワッチョイ 4c63-rVqr)
2021/12/07(火) 15:09:33.84ID:NCVMykAH0 つかglobを何だと思ってんだガイジは
358デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/07(火) 15:23:50.74ID:F2U4yKHS0 スレタイ読めない人がいるな
359デフォルトの名無しさん (アウアウエー Sa6a-mSww)
2021/12/07(火) 21:21:55.14ID:3sCD52Waa オワコンのruby薦められても困る
360デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/07(火) 21:40:58.38ID:Jl0mhXXA0 rubyとperlとVBとobjective-Cの人は、脱出するのが早いほど幸せになれる
361デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/07(火) 21:43:22.87ID:P3Md4odo0 すんげえ苦労したけどなんとか形になりました
バッチなのですれ違いすみません
もっと勉強して最適化していきます
わかってしまえばすごくシンプル
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
)
バッチなのですれ違いすみません
もっと勉強して最適化していきます
わかってしまえばすごくシンプル
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デフォルトの名無しさん (ワッチョイ f15c-Z6Z9)
2021/12/07(火) 22:06:22.51ID:zHaA7V/Y0 ワロタw
363デフォルトの名無しさん (ワッチョイ 0333-Z6Z9)
2021/12/07(火) 22:58:20.49ID:I8679kEJ0 嘘だろ
364デフォルトの名無しさん (ワッチョイ 6eda-9WRP)
2021/12/07(火) 23:00:21.81ID:oV2OkogX0 クソワロタ
365デフォルトの名無しさん (ワッチョイ c063-cP/Y)
2021/12/07(火) 23:12:35.70ID:7GhYBix30 templateって何?
366デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/07(火) 23:44:21.65ID:F2U4yKHS0 ポテンシャルを感じる
367デフォルトの名無しさん
2021/12/08(水) 01:37:02.26 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変更引き継いで?くれないんですね・・
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デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/08(水) 02:08:39.64ID:uCheTDCk0 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)
デフォルト関数も多そうだし条件分岐とかが簡単そうですが
外部ツール起動に対するオプション調査中です
ファイル名を取得してその名前でディレクトリを作成するところまではできました
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デフォルトの名無しさん (ワッチョイ 2c68-wVd4)
2021/12/08(水) 07:20:30.37ID:OmzTkGs60370デフォルトの名無しさん (ワッチョイ b701-Z6Z9)
2021/12/08(水) 13:19:52.67ID:uCheTDCk0 外部ツールに抽出ファイルをかけるのが難しいですね
%Tool% -i %%f -o "%2\%%~nf\%%~nf.〇〇〇" -a -e
この処理をPythonでどうやるのか?
subprocess.runあたりを使うっぽいのですがその後の書き方や処理方法が不透明
ターミナルにパイプして処理する?とかになるなら結局バッチかパワーシェルで
統一した方が早いのでしょうか
%Tool% -i %%f -o "%2\%%~nf\%%~nf.〇〇〇" -a -e
この処理をPythonでどうやるのか?
subprocess.runあたりを使うっぽいのですがその後の書き方や処理方法が不透明
ターミナルにパイプして処理する?とかになるなら結局バッチかパワーシェルで
統一した方が早いのでしょうか
371デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/08(水) 13:33:21.38ID:5HATgl/c0 標準出力を取得して、とかやるとそれ用のことを書かないといけないけど、
実行させるだけなら超シンプル
subprocessから取得したデータをパイプでffmpegに渡して、
とかやらせてちゃんと動くとちょっと嬉しい
実行させるだけなら超シンプル
subprocessから取得したデータをパイプでffmpegに渡して、
とかやらせてちゃんと動くとちょっと嬉しい
372デフォルトの名無しさん (スププ Sd94-oHE9)
2021/12/08(水) 13:43:19.97ID:lsXABI8+d ニコ生のえっちなやつ録画したいニキおつ
373デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/08(水) 15:21:18.60ID:M4uEosNe0374デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/08(水) 16:12:58.05ID:5HATgl/c0 m = re.search('pattern', str)
if m:
item = m.group(1)
みたいには書けるけど、ifの中にmの取得を一緒に書けない?
そうでないと、if elif elseで書けない
if m:
item = m.group(1)
みたいには書けるけど、ifの中にmの取得を一緒に書けない?
そうでないと、if elif elseで書けない
375デフォルトの名無しさん (ワッチョイ 8e46-sQbJ)
2021/12/08(水) 16:16:26.00ID:Z7ccVyDn0 昔のpythonでは書けなかったんですが
python3.8からassignment expression := ができるようになりました
python3.8からassignment expression := ができるようになりました
376デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/08(水) 16:22:47.75ID:5HATgl/c0 おおー、できるのか
でもうちのは3.7だからできないわ
会社のは3.6だからもっとできない
変な互換性のなさを作り込むよりは、3.6でもやれる方法を考えよう
でもうちのは3.7だからできないわ
会社のは3.6だからもっとできない
変な互換性のなさを作り込むよりは、3.6でもやれる方法を考えよう
377デフォルトの名無しさん (ワッチョイ ae63-wVd4)
2021/12/08(水) 16:31:06.57ID:cmZgcxZR0378デフォルトの名無しさん (スププ Sd94-oHE9)
2021/12/08(水) 16:31:50.71ID:lsXABI8+d item = data.get(1)
if item:
id(item)
#3.8
if item:= data.get(1):
id(item)
if item:
id(item)
#3.8
if item:= data.get(1):
id(item)
379デフォルトの名無しさん (ワッチョイ 4099-Z6Z9)
2021/12/08(水) 16:51:20.77ID:e5XneN8e0 pythonの野郎宗旨替えしやがったのか
380デフォルトの名無しさん (ワッチョイ ae63-wVd4)
2021/12/08(水) 17:00:08.30ID:cmZgcxZR0 >>374
スコープの話なら、関数こさえてreturnで拾うという手もあるけど、めんどくさいね
スコープの話なら、関数こさえてreturnで拾うという手もあるけど、めんどくさいね
381デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/08(水) 17:02:23.43ID:5HATgl/c0 無駄な処理は増えるけど
m1 = re.〜
m2 = re.〜
としておいてから、
if m1:
elif m2:
なら書ける
代入が評価もできる仕組みは、書き間違えてバグるからというよりは、
単純に読みにくくなる
m1 = re.〜
m2 = re.〜
としておいてから、
if m1:
elif m2:
なら書ける
代入が評価もできる仕組みは、書き間違えてバグるからというよりは、
単純に読みにくくなる
382デフォルトの名無しさん (アウアウエー Sa6a-mSww)
2021/12/08(水) 17:12:25.01ID:+2BbFlMUa Pythonのifのスコープは脳に優しくないな
383デフォルトの名無しさん (ワッチョイ a601-Z6Z9)
2021/12/08(水) 17:22:50.60ID:aaXV5Kk80 プライベートだと思っていた彼女のホールがグローバルだった
384デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/08(水) 19:30:48.14ID:5HATgl/c0 入力行をsplitして取り込む
arg1, arg2, arg3 = line.split('\t')
みたいな感じ
でも、入力がちゃんとしてなくて数が多くても少なくてもエラーになる
そこはよしなにやって欲しい
足りない部分はNoneで埋めて、余った分は捨てていい
というええかげんなことをしようと思ったら、ええかげん関数を作るしかないのかな
arg1, arg2, arg3 = line.split('\t')
みたいな感じ
でも、入力がちゃんとしてなくて数が多くても少なくてもエラーになる
そこはよしなにやって欲しい
足りない部分はNoneで埋めて、余った分は捨てていい
というええかげんなことをしようと思ったら、ええかげん関数を作るしかないのかな
385デフォルトの名無しさん (スププ Sd94-oHE9)
2021/12/08(水) 19:35:03.01ID:lsXABI8+d 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')
???
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デフォルトの名無しさん (ワッチョイ e1e0-EQ5N)
2021/12/08(水) 21:14:52.99ID:/jR8/f4s0 >>384
arg1, arg2, arg3, *_ = line.split('¥t') + [None, None]
arg1, arg2, arg3, *_ = line.split('¥t') + [None, None]
387デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/08(水) 23:31:45.91ID:5HATgl/c0 + でいいんだな
388デフォルトの名無しさん (ワッチョイ a601-CYhY)
2021/12/09(木) 02:15:13.68ID:WjLFVkiy0 すみません、質問なのですが、
newline= ってpython3じゃないと使えないのですか?
newline= ってpython3じゃないと使えないのですか?
389デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/09(木) 02:26:38.04ID:y+vTbIG00 調べてから質問してる?
390デフォルトの名無しさん (ワッチョイ a601-CYhY)
2021/12/09(木) 02:29:06.32ID:WjLFVkiy0 してる
391デフォルトの名無しさん
2021/12/09(木) 05:36:26.42 "newline= を使う"ってなに?
文字列の中に改行コードは使えるか
って意味じゃないよね
それだとそっこーぐぐったら出てくるし。
なんかのライブラリやらフレームワーク的な話なのだろうか
文字列の中に改行コードは使えるか
って意味じゃないよね
それだとそっこーぐぐったら出てくるし。
なんかのライブラリやらフレームワーク的な話なのだろうか
392デフォルトの名無しさん
2021/12/09(木) 05:39:43.24 あるいはクロスプラットフォームでのCRLFかLFかみたいな話かな
393デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/09(木) 06:51:10.51ID:7v43kIFS0 openのオプションでしょ
394デフォルトの名無しさん
2021/12/09(木) 08:02:22.78ID:I94H5Ioy >>388
python3.8.1
https://techiedelight.com/compiler/?MQK2
python2.7.17
https://techiedelight.com/compiler/?lKam
python3.8.1
https://techiedelight.com/compiler/?MQK2
python2.7.17
https://techiedelight.com/compiler/?lKam
395デフォルトの名無しさん (ワッチョイ 9f01-YCX0)
2021/12/09(木) 08:48:12.08ID:zIpIn5ri0 beautifulsoupでattributeerror: nonetype nas no attribute stringが発生するんだけどnoneになることが想定される場合は一々いっこっこifでかこってやらないとだめなの?
396デフォルトの名無しさん (ワッチョイ 9f01-YCX0)
2021/12/09(木) 08:56:56.15ID:zIpIn5ri0 ifっていうかtryか
397デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/09(木) 08:59:10.31ID:7v43kIFS0 最大限何でも見つかるようにしとくから、緩めるのはユーザ側でやってね
という姿勢は間違ってないんだけどな
元から緩かったら厳しくしようがない
という姿勢は間違ってないんだけどな
元から緩かったら厳しくしようがない
398デフォルトの名無しさん (ワッチョイ 4d63-wVd4)
2021/12/09(木) 09:52:10.18ID:q+Lg0FmZ0 自分の管理できないデータを拾おうとする場合は
例外処理は必須だと思う
例外処理は必須だと思う
399デフォルトの名無しさん (ワッチョイ a601-CYhY)
2021/12/09(木) 10:42:48.76ID:WjLFVkiy0 >>394
ありがとうございます!!!
ありがとうございます!!!
400デフォルトの名無しさん (ブーイモ MMba-rU9g)
2021/12/09(木) 11:32:41.22ID:LJEXrIakM >>395
ifかor
Pythonにはsafe navigation operatorがないからスクレイピングコードは煩雑になりがち
https://en.wikipedia.org/wiki/Safe_navigation_operator
要素がなければ空文字のようなデフォルト値を返す汎用的関数を自分で用意すると少し読みやすくなる
ifかor
Pythonにはsafe navigation operatorがないからスクレイピングコードは煩雑になりがち
https://en.wikipedia.org/wiki/Safe_navigation_operator
要素がなければ空文字のようなデフォルト値を返す汎用的関数を自分で用意すると少し読みやすくなる
401デフォルトの名無しさん (ワッチョイ 4d63-wVd4)
2021/12/09(木) 11:51:24.51ID:q+Lg0FmZ0 JSONなんかだと、get()で拾えばまぁ困らんな
402デフォルトの名無しさん (ブーイモ MMba-rU9g)
2021/12/09(木) 11:58:39.98ID:LJEXrIakM BeautifulSoupじゃなくてScrapyなら少しマシ
公式ドキュメントの質は段違い
公式ドキュメントの質は段違い
403デフォルトの名無しさん (ブーイモ MMba-rU9g)
2021/12/09(木) 12:37:45.04ID:LJEXrIakM >>401
指定した要素がない状況を考慮する必要があれば階層ごとに自分でハンドリングが必要だからgetだけじゃダメなんだよね
safe navigation operatorがあればlodashのgetやrubyのdigのようなのが簡単に作れる
近いところでglomがあるけど処理を分割したり、つなげたりできないから使い勝手が悪い
指定した要素がない状況を考慮する必要があれば階層ごとに自分でハンドリングが必要だからgetだけじゃダメなんだよね
safe navigation operatorがあればlodashのgetやrubyのdigのようなのが簡単に作れる
近いところでglomがあるけど処理を分割したり、つなげたりできないから使い勝手が悪い
404デフォルトの名無しさん (ワッチョイ 4c63-rVqr)
2021/12/09(木) 14:43:48.67ID:kmW2UpC80 bsのドキュメントってなんであんな書き方なんかな
405デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/09(木) 17:31:55.59ID:7v43kIFS0 クラスAを入力にしてクラスBに出力する時
a.process(b)
よりも
b.process(a)
の方が直感的だろうか
a.process(b)
よりも
b.process(a)
の方が直感的だろうか
406デフォルトの名無しさん (スププ Sd70-oHE9)
2021/12/09(木) 17:33:06.64ID:hfvG1WdLd インスタンス作り直す
407デフォルトの名無しさん (ワッチョイ 4b7c-Oe9c)
2021/12/09(木) 17:43:20.61ID:eEWQKJ8w0408デフォルトの名無しさん (ワッチョイ c001-/p/a)
2021/12/09(木) 17:47:49.86ID:y+vTbIG00 bの状態を変化させるなら後者かな
409デフォルトの名無しさん (ワッチョイ ce3b-uxRD)
2021/12/09(木) 17:49:17.07ID:7v43kIFS0 名前をちゃんと付けると、データの抽出と設定を同時にやる訳だから
b.extract_data_and_write(a)
と書いたとしても、
from b to a なのか from a to bなのかは判らない
b.extract_data_and_write(a)
と書いたとしても、
from b to a なのか from a to bなのかは判らない
410デフォルトの名無しさん (スププ Sd70-oHE9)
2021/12/09(木) 18:19:58.56ID:hfvG1WdLd 責任の所在はAにあるから
aの所有するメソッドがbを操作する、という書き方がいい
つまり前者
aの所有するメソッドがbを操作する、という書き方がいい
つまり前者
411デフォルトの名無しさん (ワッチョイ 66ad-V6RP)
2021/12/09(木) 19:29:46.08ID:y36UsJ/D0 pythonって直感的ってより
少ない記述で書ける小型プログラムってイメージ
少ない記述で書ける小型プログラムってイメージ
412デフォルトの名無しさん (エアペラ SD46-A/rS)
2021/12/09(木) 19:32:50.08ID:vdjQHUNbD pythonって直感的ってより
コーディング規約みたいなのをなるべく減らすよう設計されてるイメージ
コーディング規約みたいなのをなるべく減らすよう設計されてるイメージ
413デフォルトの名無しさん (ワッチョイ 4c63-rVqr)
2021/12/09(木) 19:34:27.22ID:kmW2UpC80 イメージで語るな
414デフォルトの名無しさん (ワッチョイ d2b1-PP5C)
2021/12/09(木) 20:11:20.59ID:lReNouCA0 すいませーん、入門したばかりなので低次元な質問ですけど教えてください。
DataFrameで行番号100以上のdf["hoge"]の値を全てNoneに置き換え、
って、どうやるんでしょう?
whereを使って列の値をキーにして置き換えみたいな記事はあちこちにあるんですけど、
うまく見つけられなくて…。
DataFrameで行番号100以上のdf["hoge"]の値を全てNoneに置き換え、
って、どうやるんでしょう?
whereを使って列の値をキーにして置き換えみたいな記事はあちこちにあるんですけど、
うまく見つけられなくて…。
415414 (ワッチョイ d2b1-PP5C)
2021/12/09(木) 20:20:57.64ID:lReNouCA0 一応、出来たみたいです…。
df_subset = df2.query("index > 100")
df2.loc[df_subset.index, "hoge"] = None
2ステップになっちゃいました…。
もっと楽なやり方ってあるんでしょうかね?
df_subset = df2.query("index > 100")
df2.loc[df_subset.index, "hoge"] = None
2ステップになっちゃいました…。
もっと楽なやり方ってあるんでしょうかね?
416デフォルトの名無しさん (ワッチョイ 0a10-QDcv)
2021/12/09(木) 21:01:27.61ID:/XpwR6ak0 df.iloc[df.index>100,”hoge”]=None
■ このスレッドは過去ログ倉庫に格納されています
