当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合★は、
表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その54
https://mevius.5ch.net/test/read.cgi/tech/1623240344/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
【まず1嫁】くだすれPython(超初心者用) その55
■ このスレッドは過去ログ倉庫に格納されています
2021/10/01(金) 15:46:47.17ID:9qOHXj6D
2021/10/01(金) 15:51:56.85ID:131QCENJ
pythonの本この前かったわ
エロ画像収集するんだ
エロ画像収集するんだ
3デフォルトの名無しさん
2021/10/01(金) 16:14:27.26ID:xAAYN8E1 最近 youtube 側のクローラー対策アルゴリズムが変わったらしく
前に描いてた python スクリプトがエラー吐くようになった
適当に wait 入れてアクセス頻度落とすとエラー出ない訳だが
遅くなるのでぎりぎり最適の wait にしたいんだが肝心な google 側のアルゴリズムが不明
納得行く速度が出るまでごちゃごちゃ試すと BAN されちゃうかな?
前に描いてた python スクリプトがエラー吐くようになった
適当に wait 入れてアクセス頻度落とすとエラー出ない訳だが
遅くなるのでぎりぎり最適の wait にしたいんだが肝心な google 側のアルゴリズムが不明
納得行く速度が出るまでごちゃごちゃ試すと BAN されちゃうかな?
2021/10/01(金) 16:20:44.94ID:PaEGpo5A
契約して、YouTube API を使えば?
2021/10/01(金) 16:57:41.48ID:xAAYN8E1
おにただ正論
2021/10/01(金) 18:22:34.09ID:1X70H7Xp
python関係無いしw
2021/10/01(金) 19:40:08.43ID:CQRkUSDD
うちもとあるサイト毎週引っこ抜いてたらいつもはない臨時メンテがあってその直後非同期だと接続エラーはくようになったな
非同期なくしたら大丈夫だったので今はおとなしく1倍速で落としてるけど。IPBANされなかっただけマシか
非同期なくしたら大丈夫だったので今はおとなしく1倍速で落としてるけど。IPBANされなかっただけマシか
8デフォルトの名無しさん
2021/10/01(金) 19:59:28.33ID:XZxvwPE1 pypy(パイパイ)って発音しにくいよね、特に社内だと( ^ω^)・・・
2021/10/02(土) 11:36:25.91ID:rV5kYlEk
魑魑こそ正義
10デフォルトの名無しさん
2021/10/02(土) 15:09:37.96ID:yFRwYWli pypiのクローラーねぇ
11デフォルトの名無しさん
2021/10/02(土) 23:18:51.11ID:zWqv5K6j クソチョンw
2021/10/05(火) 14:54:46.13ID:eLBz+/wl
プライベートクラス変数にするメリットってどのようなときがあるのでしょうか・・
https://docs.python.org/ja/3/tutorial/classes.html#private-variables
>もし仮に MappingSubclass に __update 識別子を実装したとしても
これなら普通、Mappingクラスに実装しませんか?
それとは別にメリットとして、オブジェクトの中からしかアクセスしない変数
として使うなら、class外に書いた方がいいような?
https://docs.python.org/ja/3/tutorial/classes.html#private-variables
>もし仮に MappingSubclass に __update 識別子を実装したとしても
これなら普通、Mappingクラスに実装しませんか?
それとは別にメリットとして、オブジェクトの中からしかアクセスしない変数
として使うなら、class外に書いた方がいいような?
13デフォルトの名無しさん
2021/10/05(火) 15:14:02.22ID:I18ZMSNA >>12
神がコーディングするならどうでもいいけど
クラス外に置くとドキュメンテーションの点で劣る
識別子の置き換えが発生しないと意図しない副作用の可能性を残してしまう
ひとつでもそういう箇所があると疑心暗鬼になり生産性も落ちる
神がコーディングするならどうでもいいけど
クラス外に置くとドキュメンテーションの点で劣る
識別子の置き換えが発生しないと意図しない副作用の可能性を残してしまう
ひとつでもそういう箇所があると疑心暗鬼になり生産性も落ちる
2021/10/05(火) 15:48:22.95ID:+YzW1gaU
windows、python3.9.7で
fileにパス付きファイル名が与えられた時に、パス無しファイル名(拡張子無し)と拡張子を取得する場合
if "." in os.path.basename(file):
____ext_without_dot = os.path.basename(file).split(".")[-1]
____basenaname_without_ext = os.path.basename(file).removesuffix("." + ext_without_dot)
else:
____ext_without_dot = ""
____basenaname_without_ext = os.path.basename(file)
で問題ないでしょうか?
もっと綺麗な書き方あったら教えてください。
fileにパス付きファイル名が与えられた時に、パス無しファイル名(拡張子無し)と拡張子を取得する場合
if "." in os.path.basename(file):
____ext_without_dot = os.path.basename(file).split(".")[-1]
____basenaname_without_ext = os.path.basename(file).removesuffix("." + ext_without_dot)
else:
____ext_without_dot = ""
____basenaname_without_ext = os.path.basename(file)
で問題ないでしょうか?
もっと綺麗な書き方あったら教えてください。
2021/10/05(火) 15:58:59.57ID:UD2fraRe
>>12
その例は、Mappingクラスが、MappingSubclassのupdateメソッドではなくMappingクラスのupdateメソッドを呼び出したい場合の実装例。
Mappingの__update変数の中にMappingのupdateメソッドを格納しておけば、updateメソッドをオーバーライドされてしまってたとしても常に元のupdateメソッドを参照することができる。
サブクラスが__update変数自体をオーバーライドしようとしても、内部的に識別子を変えてるから大丈夫ですよ、そんなことできませんよ、と言っている
その例は、Mappingクラスが、MappingSubclassのupdateメソッドではなくMappingクラスのupdateメソッドを呼び出したい場合の実装例。
Mappingの__update変数の中にMappingのupdateメソッドを格納しておけば、updateメソッドをオーバーライドされてしまってたとしても常に元のupdateメソッドを参照することができる。
サブクラスが__update変数自体をオーバーライドしようとしても、内部的に識別子を変えてるから大丈夫ですよ、そんなことできませんよ、と言っている
2021/10/05(火) 16:07:03.30ID:UD2fraRe
2021/10/05(火) 16:13:46.71ID:gsPNBZV0
>>14
PurePath使え
PurePath使え
2021/10/05(火) 16:16:39.53ID:+YzW1gaU
2021/10/05(火) 16:32:23.12ID:UD2fraRe
>>18
splitextの戻り値の第2要素が空文字列だったら第1要素と第2要素をひっくり返せばよいのでは?
splitextの戻り値の第2要素が空文字列だったら第1要素と第2要素をひっくり返せばよいのでは?
2021/10/05(火) 16:35:35.19ID:+YzW1gaU
2021/10/05(火) 16:38:24.45ID:+YzW1gaU
>>19
"..jpg"のようなファイル名の場合ひっくり返してもうまくいきません
"..jpg"のようなファイル名の場合ひっくり返してもうまくいきません
22デフォルトの名無しさん
2021/10/05(火) 16:58:23.72ID:yytwxBBE >>14
from pathlib import Path
p = Path('.')
for file in p.iterdir():
ext = ''.join(file.suffixes)
without_ext = file.name.rstrip(ext)
from pathlib import Path
p = Path('.')
for file in p.iterdir():
ext = ''.join(file.suffixes)
without_ext = file.name.rstrip(ext)
2021/10/05(火) 16:59:34.11ID:UD2fraRe
import re
basename = ...
if m := re.match(r'(.*)\.([^.]+)$', basename):
. basename_without_ext = m.group(1)
. ext_without_dot = m.group(2)
めんどいからもう_
basename = ...
if m := re.match(r'(.*)\.([^.]+)$', basename):
. basename_without_ext = m.group(1)
. ext_without_dot = m.group(2)
めんどいからもう_
2021/10/05(火) 17:31:21.64ID:+YzW1gaU
>>22
これもbasenaname_without_extが""の場合うまくいきません
これもbasenaname_without_extが""の場合うまくいきません
2021/10/05(火) 17:36:31.51ID:+YzW1gaU
2021/10/05(火) 17:40:40.24ID:UD2fraRe
...のところにファイル名を入れて実行してください
basename = 'hoge.jpg'
basename = 'hoge.jpg'
2021/10/05(火) 18:00:15.70ID:yMBvIvKg
二重拡張子の場合はどうするの?
*.tar.zxとか
*.tar.zxとか
2021/10/05(火) 18:10:11.85ID:+YzW1gaU
2021/10/05(火) 18:29:46.70ID:+YzW1gaU
2021/10/05(火) 19:15:38.22ID:db3O09Qx
Python 3.10入れてみたけどIDLEのプロンプト表示が良くなってるね
最初違和感があったけど、これは見やすくて良いわ^^
新機能の構造的パターンマッチに注目ですな、これは使っていきたい
最初違和感があったけど、これは見やすくて良いわ^^
新機能の構造的パターンマッチに注目ですな、これは使っていきたい
2021/10/05(火) 19:55:29.85ID:CsDVkN/q
当方でも、パッケージ管理ソフトChocolateyにPython 3.10が来たようでPython 3.9から自動更新された
困ったことに、pywin32がまだPython 3.10に対応してない
困ったことに、pywin32がまだPython 3.10に対応してない
2021/10/05(火) 19:59:53.84ID:xYzI00Mc
33デフォルトの名無しさん
2021/10/05(火) 20:47:41.95ID:UD2fraRe >>28
import re
basename = ...
if m:=re.match(r'(.*)(\.([^.]+))|(.*)',basename):
. basename_without_ext = m.group(1) or m.group(4)
. ext_without_dot = m.group(3)
import re
basename = ...
if m:=re.match(r'(.*)(\.([^.]+))|(.*)',basename):
. basename_without_ext = m.group(1) or m.group(4)
. ext_without_dot = m.group(3)
2021/10/05(火) 21:03:44.19ID:db3O09Qx
>>14
from pathlib import Path
p = Path('hoge.jpg').resolve().absolute()
ext_without_dot = p.suffix[1:]
basename_without_ext = p.stem
from pathlib import Path
p = Path('hoge.jpg').resolve().absolute()
ext_without_dot = p.suffix[1:]
basename_without_ext = p.stem
2021/10/05(火) 21:38:18.61ID:+YzW1gaU
>>33
少し書き換えましたが希望した動作をしています
勉強になりますた、感謝
import os, re
file = "C:\\test\\a"
#file = "C:\\test\\a.b"
#file = "C:\\test\\.b"
#file = "C:\\test\\..b"
basename = os.path.basename(file)
if m := re.match(r'(.*)(\.([^.]+))|(.*)', basename):
____basename_without_ext = m.group(1) or ""
____ext_without_dot = (m.group(2) or m.group(4)).removeprefix(".")
print("\""+basename_without_ext+"\"")
print("\""+ext_without_dot+"\"")
少し書き換えましたが希望した動作をしています
勉強になりますた、感謝
import os, re
file = "C:\\test\\a"
#file = "C:\\test\\a.b"
#file = "C:\\test\\.b"
#file = "C:\\test\\..b"
basename = os.path.basename(file)
if m := re.match(r'(.*)(\.([^.]+))|(.*)', basename):
____basename_without_ext = m.group(1) or ""
____ext_without_dot = (m.group(2) or m.group(4)).removeprefix(".")
print("\""+basename_without_ext+"\"")
print("\""+ext_without_dot+"\"")
2021/10/05(火) 21:49:55.73ID:+YzW1gaU
2021/10/05(火) 22:19:04.45ID:yMBvIvKg
3.8からのセイウチ構文は便利だと思うけど、見通し悪くなるしどうも好きになれない
先に変数にしたほうがわかりやすくないか?
if m := re.match(r'(.*)(\.([^.]+))|(.*)', basename):
↓
m = re.match(r'(.*)(\.([^.]+))|(.*)', basename)
if m:
先に変数にしたほうがわかりやすくないか?
if m := re.match(r'(.*)(\.([^.]+))|(.*)', basename):
↓
m = re.match(r'(.*)(\.([^.]+))|(.*)', basename)
if m:
2021/10/05(火) 22:29:08.23ID:db3O09Qx
>>36
はい私の優勝w
p = Path(f).resolve().absolute()
stem = p.stem
ext = p.suffix[1:]
if stem.startswith('.') and not ext: #ファイル名が空の場合
stem, ext = ext, stem
basename_without_ext = stem
ext_without_dot = ext
はい私の優勝w
p = Path(f).resolve().absolute()
stem = p.stem
ext = p.suffix[1:]
if stem.startswith('.') and not ext: #ファイル名が空の場合
stem, ext = ext, stem
basename_without_ext = stem
ext_without_dot = ext
39デフォルトの名無しさん
2021/10/05(火) 22:36:52.31ID:JbR3YU6O おまいらマジでポンコツだなω
2021/10/05(火) 22:46:47.72ID:+YzW1gaU
41デフォルトの名無しさん
2021/10/05(火) 23:11:06.33ID:UD2fraRe >>36
basenameって書いてるのだからbasenameを渡して
basenameって書いてるのだからbasenameを渡して
2021/10/05(火) 23:34:48.42ID:+YzW1gaU
2021/10/06(水) 00:13:14.92ID:uIHfQozZ
こうやってみたら動いてる
単純になった
import os
file = "C:\\test\\.b"
basename = os.path.basename(file)
basename_without_ext = os.path.splitext("!" + basename)[0][1:]
ext_without_dot = os.path.splitext("!" + basename)[1][1:]
単純になった
import os
file = "C:\\test\\.b"
basename = os.path.basename(file)
basename_without_ext = os.path.splitext("!" + basename)[0][1:]
ext_without_dot = os.path.splitext("!" + basename)[1][1:]
2021/10/06(水) 00:26:22.25ID:63dnmtAL
ドットファイル名だから
".b"が返らないとダメなのでは?
".b"が返らないとダメなのでは?
2021/10/06(水) 00:28:36.53ID:sqxilgxU
Ruby ではパス区切りに、/ も使える
require 'fileutils'
Dir.glob( 'c:/users/owner/documents/あ/*' )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
file_name = File.basename( full_path ) # ファイル名
file_extname = File.extname( file_name ) # 拡張子
puts "#{ file_name } : #{ file_extname }"
end
出力
あ.txt : .txt
い.csv : .csv
require 'fileutils'
Dir.glob( 'c:/users/owner/documents/あ/*' )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
file_name = File.basename( full_path ) # ファイル名
file_extname = File.extname( file_name ) # 拡張子
puts "#{ file_name } : #{ file_extname }"
end
出力
あ.txt : .txt
い.csv : .csv
2021/10/06(水) 00:38:36.79ID:uIHfQozZ
>>44
LinuxではそうでもWindowsは違うと思うんですが・・・
LinuxではそうでもWindowsは違うと思うんですが・・・
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- 訪米認証「ESTA」、SNS利用情報の提出義務化へ 日本人観光客も対象に [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- <櫻坂46松田里奈>ランジェリーカット公開 照れながらTシャツ脱ぐ [ひかり★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- (´・ω・`)おはよ
- お前らって議論できないよな
- 一般人「起きなきゃ…」 俺ら「寝ようかなzzz」
- 【画像】テレビ番組で女子アナの一軍下着を晒してしまい炎上
- 【高市逃げて!】 震度6強の地震で「NTT青森八戸ビル」で鉄塔が損傷、倒壊の恐れ。 国道通行止め & 住民に避難指示 [485983549]
