当スレに★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/06(水) 01:53:11.34ID:uIHfQozZ
2021/10/06(水) 08:16:30.25ID:a6e48TNJ
確かにWindowsだと.testはファイル名じゃなく拡張子として扱うね、だからWindowsの場合だけそうすればいい
import os
from pathlib import Path
def hoge(f):
____p = Path(f).resolve().absolute()
____stem = p.stem
____ext = p.suffix[1:]
____if os.name=='nt' and stem.startswith('.') and not ext: # Windowsの場合
________stem, ext = ext, stem[1:]
____print(f'{p.name=}\n{stem=}\n{ext=}\n')
import os
from pathlib import Path
def hoge(f):
____p = Path(f).resolve().absolute()
____stem = p.stem
____ext = p.suffix[1:]
____if os.name=='nt' and stem.startswith('.') and not ext: # Windowsの場合
________stem, ext = ext, stem[1:]
____print(f'{p.name=}\n{stem=}\n{ext=}\n')
5631
2021/10/06(水) 09:26:58.81ID:lTl3I+RT pywin32がPython3.10向けpipにない問題を自己解決したので一応報告
以下githubのpywin32レポジトリをクローンしてソースからビルドしてインストール
https://github.com/mhammond/pywin32
以下ビルドコマンドを実行
> python setup.py install --skip-verstamp
Visual Studio 2015 のビルドツールが必要なので、適宜Visual Studio Installer から 「MSVC v140 …」を追加インストール
レジストリ登録するらしく管理者権限も必要
以下githubのpywin32レポジトリをクローンしてソースからビルドしてインストール
https://github.com/mhammond/pywin32
以下ビルドコマンドを実行
> python setup.py install --skip-verstamp
Visual Studio 2015 のビルドツールが必要なので、適宜Visual Studio Installer から 「MSVC v140 …」を追加インストール
レジストリ登録するらしく管理者権限も必要
57デフォルトの名無しさん
2021/10/06(水) 10:49:29.50ID:N2DvDSnL [{'data': 'data123’, 'test': [{'testname': 'test123', 'testvalue': 'value123'}], 'date': '20211006}, {'data': 'data789’, 'test': [{'testname': 'test789', 'testvalue': 'value789'}], 'date': '20211007}]
上のようなかんじのデータ構造のデータがありまして、
forか何かでループして切り出して下のような感じに分割してデータを扱いたいんですがどうやればできますか?
[{'data': 'data123’, 'test': [{'testname': 'test123', 'testvalue': 'value123'}], 'date': '20211006}]
[{'data': 'data789’, 'test': [{'testname': 'test789', 'testvalue': 'value789'}], 'date': '20211007}]
上のようなかんじのデータ構造のデータがありまして、
forか何かでループして切り出して下のような感じに分割してデータを扱いたいんですがどうやればできますか?
[{'data': 'data123’, 'test': [{'testname': 'test123', 'testvalue': 'value123'}], 'date': '20211006}]
[{'data': 'data789’, 'test': [{'testname': 'test789', 'testvalue': 'value789'}], 'date': '20211007}]
2021/10/06(水) 11:06:28.93ID:YjJCqwIe
アップする前にちゃんとデータ検証しとけよ。
ary=[{'dict':'test'},{'dict':'test2'}]
for itm in ary:
__print(itm)
ary=[{'dict':'test'},{'dict':'test2'}]
for itm in ary:
__print(itm)
59デフォルトの名無しさん
2021/10/06(水) 11:17:52.70ID:N2DvDSnL >>58
ありがとうございます
早速試したみましたがそれっぽいことができました
printした結果、前後の[ ]がなくなっていてリストではなくなっているようにみえるんですがこいつをリストにはできないですか?
ありがとうございます
早速試したみましたがそれっぽいことができました
printした結果、前後の[ ]がなくなっていてリストではなくなっているようにみえるんですがこいつをリストにはできないですか?
2021/10/06(水) 11:23:52.33ID:YjJCqwIe
各要素には[ ]はもともと付いてないからな。
その程度がわからんようなら基本的な知識が不足しすぎ。
初めから各要素をリストにしとくか、[itm]にする。
つーか、なんで抽出してまた各々をリストにする必要があるんだよ。
その程度がわからんようなら基本的な知識が不足しすぎ。
初めから各要素をリストにしとくか、[itm]にする。
つーか、なんで抽出してまた各々をリストにする必要があるんだよ。
2021/10/06(水) 11:35:16.77ID:lTl3I+RT
任意のjson文字列を読み込む必要があるとかかね?
62デフォルトの名無しさん
2021/10/06(水) 11:47:56.89ID:IkoUshwC うーん、よくわからんっす
知識不足ってのはそうですね、まだpythonさわって3日目ですw
web apiに引数としてデータ渡す際にリストで渡さないといけないのです
最初の分解する前の状態でも渡せないことはないんですが全部一度に渡すと具合悪いので分割して一つずつ渡したい感じです
知識不足ってのはそうですね、まだpythonさわって3日目ですw
web apiに引数としてデータ渡す際にリストで渡さないといけないのです
最初の分解する前の状態でも渡せないことはないんですが全部一度に渡すと具合悪いので分割して一つずつ渡したい感じです
63デフォルトの名無しさん
2021/10/06(水) 11:48:29.59ID:IkoUshwC あれipが変わってしまいました
64デフォルトの名無しさん
2021/10/06(水) 12:10:25.68ID:IkoUshwC リストで渡す=json文字列で渡す
って意味なのかな?
そうならjson文字列で渡したいのです
って意味なのかな?
そうならjson文字列で渡したいのです
2021/10/06(水) 12:23:59.95ID:YjJCqwIe
>>62
>うーん、よくわからんっす
[itm]がわからんてこと? 書いてあるママだが。
リストで渡せるならわざわざjsonにする必要はない。
その理解度でweb apiを触ろうとするのが逆にすごいな。
>うーん、よくわからんっす
[itm]がわからんてこと? 書いてあるママだが。
リストで渡せるならわざわざjsonにする必要はない。
その理解度でweb apiを触ろうとするのが逆にすごいな。
66デフォルトの名無しさん
2021/10/06(水) 12:28:38.78ID:IkoUshwC for [itm] ってことですか?
エラーで返ってきますけど
エラーで返ってきますけど
2021/10/06(水) 12:31:24.23ID:YjJCqwIe
68デフォルトの名無しさん
2021/10/06(水) 12:40:42.74ID:IkoUshwC なるほど!試してみますw
69デフォルトの名無しさん
2021/10/06(水) 12:49:00.18ID:IkoUshwC できました!
すげえっす
めっちゃサンキューな
すげえっす
めっちゃサンキューな
2021/10/06(水) 15:56:51.31ID:phrbWxHz
StreamlitからLiberoffice Base操作するってどうしたら良いですか?
2021/10/06(水) 21:08:11.15ID:cm9kobto
sqlalchemyでデータベースの検索やInsert処理をします。
挿入処理A、検索処理B、検索処理Cをそれぞれ並列処理したとき
session.close()するタイミングはどうやればいいのでしょうか
例えば
addしたいレコードが複数あるとき
#挿入処理A
for item in items:
_db.session.add(item)
_time.sleep(3)#あえてsleep
db.session.commit()
db.session.close()
↑
この処理中に並列処理中の検索B、Cでの
(.commit()然り)db.session.close()がかぶる気がするのですが
挿入処理A、検索処理B、検索処理Cをそれぞれ並列処理したとき
session.close()するタイミングはどうやればいいのでしょうか
例えば
addしたいレコードが複数あるとき
#挿入処理A
for item in items:
_db.session.add(item)
_time.sleep(3)#あえてsleep
db.session.commit()
db.session.close()
↑
この処理中に並列処理中の検索B、Cでの
(.commit()然り)db.session.close()がかぶる気がするのですが
2021/10/06(水) 21:26:27.63ID:xpgZiC6t
3.10来てるじゃねえか教えろよ
…
…
パターンマッチくらいか
あれば便利だけど取り立てて欲しい!って機能ではないなあ
…
…
パターンマッチくらいか
あれば便利だけど取り立てて欲しい!って機能ではないなあ
2021/10/06(水) 21:31:05.16ID:xpgZiC6t
型の方はますますTypeScriptじみて来たな
もうTythonですよ
10年くらい前にTythonあったよね
もうTythonですよ
10年くらい前にTythonあったよね
7471
2021/10/07(木) 10:04:08.76ID:ZfelXN70 自己解決?しました
まだ確信は持てませんが結局commitとcloseの総数が適切なら
挿入処理Aのループ処理の途中で(他の並列処理B,Cが)commit、closeしようが
DB更新瞬間さえセキュアであれば関係ないっぽいですね
まだ確信は持てませんが結局commitとcloseの総数が適切なら
挿入処理Aのループ処理の途中で(他の並列処理B,Cが)commit、closeしようが
DB更新瞬間さえセキュアであれば関係ないっぽいですね
75デフォルトの名無しさん
2021/10/07(木) 11:50:22.62ID:YxBBlGj0 elifだと構文上subjectを固定できずコードが曖昧になってたからmatchたすかる
パターンマッチできるところが増えてくといいなあ
パターンマッチできるところが増えてくといいなあ
2021/10/07(木) 13:09:40.31ID:vIJYcTdp
Windowsの拡張子の取得をテストして気づいたこと
現代では拡張子は"."を含めるらしい
DOSの時代は含めなかったのに・・・
作成済みのプログラムの修正するか悩む
現代では拡張子は"."を含めるらしい
DOSの時代は含めなかったのに・・・
作成済みのプログラムの修正するか悩む
77デフォルトの名無しさん
2021/10/07(木) 15:39:01.76ID:UFWCdLE6 ドットディレクトリとかの影響かな?
2021/10/07(木) 16:16:39.36ID:vIJYcTdp
理由はよくわからないけど、LinuxやUNIX側の影響でしょうね
ドットディレクトリの、".abc"みたいなのは対応は簡単?なんですが
"abc."みたいなドットで終わるタイプのファイル名想定してませんでした
DOSではこんなファイル名付けられなかったもんで
ドットディレクトリの、".abc"みたいなのは対応は簡単?なんですが
"abc."みたいなドットで終わるタイプのファイル名想定してませんでした
DOSではこんなファイル名付けられなかったもんで
2021/10/07(木) 19:30:33.12ID:vIJYcTdp
ドットで終わるファイル名
os.path.isfile(file) -> False
ドットで終わるディレクトリ名
os.path.isdir(file) -> False
ドットで終わるファイル名・ディレクトリ名
attribute = win32api.GetFileAttributes(file) -> 例外
os.path.isfile(file) -> False
ドットで終わるディレクトリ名
os.path.isdir(file) -> False
ドットで終わるファイル名・ディレクトリ名
attribute = win32api.GetFileAttributes(file) -> 例外
2021/10/07(木) 19:43:13.97ID:vIJYcTdp
p_dir = pathlib.Path(dir)
p_files = list(p_dir.glob("**/*"))
1stのディレクトリを再帰読込しようとすると、下の階層のドットで終わるファイル名・ディレクトリ名で例外
1st --- 2nd1 -
_____|- 2nd2. -
_____|- 2nd.3
例外を発生させずドットで終わるファイル名・ディレクトリ名を読み飛ばすには、
自力で再帰読込するしかないのでしょうか?
p_files = list(p_dir.glob("**/*"))
1stのディレクトリを再帰読込しようとすると、下の階層のドットで終わるファイル名・ディレクトリ名で例外
1st --- 2nd1 -
_____|- 2nd2. -
_____|- 2nd.3
例外を発生させずドットで終わるファイル名・ディレクトリ名を読み飛ばすには、
自力で再帰読込するしかないのでしょうか?
2021/10/07(木) 20:07:13.59ID:vIJYcTdp
2021/10/07(木) 20:30:18.08ID:vIJYcTdp
改めて質問します
p_dir = pathlib.Path(dir)
p_files = list(p_dir.glob("**/*"))
1stのディレクトリを再帰読込しようとすると、下の階層のドットで終わるディレクトリ名で例外
1st --- 2nd1
_____|- 2nd2. (ドットで終わるファイル)
_____|- 2nd3. (ドットで終わるディレクトリ) -> 例外 FileNotFoundError
例外を発生させずドットで終わるディレクトリ名を読み飛ばすには、
自力で再帰読込するしかないのでしょうか?
未検証のアイデアでも頂けたらうれしいです
p_dir = pathlib.Path(dir)
p_files = list(p_dir.glob("**/*"))
1stのディレクトリを再帰読込しようとすると、下の階層のドットで終わるディレクトリ名で例外
1st --- 2nd1
_____|- 2nd2. (ドットで終わるファイル)
_____|- 2nd3. (ドットで終わるディレクトリ) -> 例外 FileNotFoundError
例外を発生させずドットで終わるディレクトリ名を読み飛ばすには、
自力で再帰読込するしかないのでしょうか?
未検証のアイデアでも頂けたらうれしいです
2021/10/07(木) 21:02:20.97ID:xRnq/kAQ
やってみたらドットで終わるディレクトリ作れまへんがな
最後のドット消えてまうんやけど?
最後のドット消えてまうんやけど?
2021/10/07(木) 21:20:59.25ID:vIJYcTdp
>>83
エクスプローラーから作る方法は私も知りません
コマンドプロンプトで
copy "C:\test\a.txt" "\\?\C:\test\a."
md "\\?\C:\test\b."
みたいなかんじです
コマンドラインの知識が全くないかたは実験しないでください。
エクスプローラーから作る方法は私も知りません
コマンドプロンプトで
copy "C:\test\a.txt" "\\?\C:\test\a."
md "\\?\C:\test\b."
みたいなかんじです
コマンドラインの知識が全くないかたは実験しないでください。
2021/10/07(木) 21:28:40.10ID:xRnq/kAQ
2021/10/07(木) 21:40:15.30ID:UdQO/mXQ
> ID:vIJYcTdp
システム依存な話なのでよそでどうぞ
システム依存な話なのでよそでどうぞ
2021/10/07(木) 21:44:37.02ID:vIJYcTdp
>>85
こちらもWindows10です
ずっとコマンドプロンプトでやっていてできてます
今PowerShellでやってみましたが、PowerShellでもできました
\\?\C つけ忘れていませんか?
フルパスで "" もつけてください
ほかに条件あるのだろうか
こちらもWindows10です
ずっとコマンドプロンプトでやっていてできてます
今PowerShellでやってみましたが、PowerShellでもできました
\\?\C つけ忘れていませんか?
フルパスで "" もつけてください
ほかに条件あるのだろうか
2021/10/07(木) 21:56:31.61ID:xRnq/kAQ
2021/10/07(木) 22:01:48.59ID:vIJYcTdp
2021/10/07(木) 22:02:37.28ID:vIJYcTdp
>>86
これでいいですか?
p_dir = pathlib.Path(dir)
p_files = list(p_dir.glob("**/*"))
で例外が発生する場合、該当ファイルを読み飛ばして処理を行う方法はありますか?
自力で再帰読込はできればやりたくありません
これでいいですか?
p_dir = pathlib.Path(dir)
p_files = list(p_dir.glob("**/*"))
で例外が発生する場合、該当ファイルを読み飛ばして処理を行う方法はありますか?
自力で再帰読込はできればやりたくありません
2021/10/07(木) 22:28:17.75ID:xRnq/kAQ
最後がドッドのアクセスできないディレクトリに入ろうとして例外が出るのかな?
これは自力で再帰読込するしかないよ、再帰はそんな難しくないと思うよ! がんばって^^
これは自力で再帰読込するしかないよ、再帰はそんな難しくないと思うよ! がんばって^^
2021/10/07(木) 23:35:06.59ID:vIJYcTdp
超レアケースなのでルートのディレクトリ毎エラー処理することにします
できればファイル単位でエラー処理したかったのですが
できればファイル単位でエラー処理したかったのですが
93デフォルトの名無しさん
2021/10/07(木) 23:50:14.03ID:StWMkIYV >>82
どうかな
import pathlib
p_dir = pathlib.Path(".")
p_glob = p_dir.glob("**/*")
p_files = []
while True:
try:
p = next(p_glob)
p_files.append(p)
except FileNotFoundError as e:
import sys
print(e, file=sys.stderr)
except StopIteration:
break
print(*p_files, sep="\n")
どうかな
import pathlib
p_dir = pathlib.Path(".")
p_glob = p_dir.glob("**/*")
p_files = []
while True:
try:
p = next(p_glob)
p_files.append(p)
except FileNotFoundError as e:
import sys
print(e, file=sys.stderr)
except StopIteration:
break
print(*p_files, sep="\n")
2021/10/07(木) 23:53:44.05ID:vIJYcTdp
2021/10/08(金) 00:17:02.73ID:T4fYgd16
96デフォルトの名無しさん
2021/10/08(金) 00:41:36.79ID:x4lgXBGS Path.glob()いいね
いままでos.walk()で自前でフィルタしてたけど今度つかってみる
いままでos.walk()で自前でフィルタしてたけど今度つかってみる
2021/10/08(金) 08:04:57.04ID:dABXXppr
ジェネレーターのスゴさを認識できた
98デフォルトの名無しさん
2021/10/08(金) 09:08:14.69ID:Pr4xGBUG globって見に行かない名前のファイルかディレクトリなかったっけ?
2021/10/08(金) 09:45:15.17ID:LO45Vby3
for i in range(100):
_if条件:
__time.sleep(3)など
__continue
_if条件:
__time.sleep(3)など
__continue
こういうとき、time.sleep(3)などが重複するのでまとめたいと思い
for i in range(100):
_if i!=0:
__time.sleep(3)など
としましたが
要は、continueするときには必ず実行する文がある
ということなので
continue後毎に処理するような節とかテクニックや慣習はあるのでしょうか
_if条件:
__time.sleep(3)など
__continue
_if条件:
__time.sleep(3)など
__continue
こういうとき、time.sleep(3)などが重複するのでまとめたいと思い
for i in range(100):
_if i!=0:
__time.sleep(3)など
としましたが
要は、continueするときには必ず実行する文がある
ということなので
continue後毎に処理するような節とかテクニックや慣習はあるのでしょうか
100デフォルトの名無しさん
2021/10/08(金) 09:56:28.31ID:3oVEDenR イマイチ何言ってるかわからんけど、関数でいいんじゃないの?
101デフォルトの名無しさん
2021/10/08(金) 10:14:00.03ID:LO45Vby3 if条件の中にはif条件1とif条件2で違う処理も入っているので
continueするときに必ず行う処理はべつのとこに書いた方が見やすいかな
と思ったのです
つまり、continue文の宣言自体がそれ(continueするときに必ず行う処理)を示すような書き方があれば
と思ったのですがなさそうですね
ありがとうございました
continueするときに必ず行う処理はべつのとこに書いた方が見やすいかな
と思ったのです
つまり、continue文の宣言自体がそれ(continueするときに必ず行う処理)を示すような書き方があれば
と思ったのですがなさそうですね
ありがとうございました
102デフォルトの名無しさん
2021/10/08(金) 10:20:00.72ID:Q4k4Ultl 書いてる例だけ見るとcontinueを使うべきケースではなさそう
103デフォルトの名無しさん
2021/10/08(金) 10:44:16.94ID:LO45Vby3 for i in range(100):
_if i!=0:
__i=0以外で実行する関数1()
↑こういうのってあんまり使わないものなのでしょうか?
continue後時に必ず実行する関数、と違う点は
if i!=0:だと最期のcontinue後は実行されない、ので混乱するかなと。
(else節併用だと野暮になるし)
やはり重複しようが
if 条件1:
_関数A()
_関数1("")
_continue
if 条件2:
_関数B()
_関数1("")
_continue
みたいにした方がいいのかもしれませんね
_if i!=0:
__i=0以外で実行する関数1()
↑こういうのってあんまり使わないものなのでしょうか?
continue後時に必ず実行する関数、と違う点は
if i!=0:だと最期のcontinue後は実行されない、ので混乱するかなと。
(else節併用だと野暮になるし)
やはり重複しようが
if 条件1:
_関数A()
_関数1("")
_continue
if 条件2:
_関数B()
_関数1("")
_continue
みたいにした方がいいのかもしれませんね
104デフォルトの名無しさん
2021/10/08(金) 10:54:49.70ID:dABXXppr for i in range(100):
____if i != 0:
________if 条件1:
____________関数A()
________if 条件2:
____________関数B()
________関数1("")
________continue
____if i != 0:
________if 条件1:
____________関数A()
________if 条件2:
____________関数B()
________関数1("")
________continue
105デフォルトの名無しさん
2021/10/08(金) 11:39:53.95ID:3oVEDenR >>103
関数1でi==0で実行しない設定にしとけばいいだけだろ。
関数1でi==0で実行しない設定にしとけばいいだけだろ。
107デフォルトの名無しさん
2021/10/08(金) 14:27:43.17ID:hfI/PPIh tkinterでrowconfigure([1, 2, 3], weight=1)とかすると
_GridIndexにlist[int]できねーよって怒られるんだけど実際はできる
どういう型指定したらいいんでしょうか
_GridIndexにlist[int]できねーよって怒られるんだけど実際はできる
どういう型指定したらいいんでしょうか
108デフォルトの名無しさん
2021/10/08(金) 22:41:24.42ID:T4fYgd16 >>93
今日詳細にテストしました。今使っているコードです
p_dir = pathlib.Path(dir)
p_files = []
p_err_files = []
p_glob = p_dir.glob("**/*")
while True:
____try:
________p = next(p_glob)
________dot_chk = False
________for divided_path in str(p).replace("/", "\\").split("\\"):
____________if divided_path[-1] == ".":
________________dot_chk = True
________________break
________if not dot_chk:
____________p_files.append(p)
________else:
____________p_err_files.append(p)
____except FileNotFoundError as e:
________print(e, file=sys.stderr)
____except StopIteration:
________break
____for i in p_err_files:
________for j in p_err_files:
____________if str(i).startswith(str(j)):
________________if len(str(i)) > len(str(j)):
____________________p_err_files.remove(i)
print(*p_files, sep="\n")
print(*p_err_files, sep="\n")
今日詳細にテストしました。今使っているコードです
p_dir = pathlib.Path(dir)
p_files = []
p_err_files = []
p_glob = p_dir.glob("**/*")
while True:
____try:
________p = next(p_glob)
________dot_chk = False
________for divided_path in str(p).replace("/", "\\").split("\\"):
____________if divided_path[-1] == ".":
________________dot_chk = True
________________break
________if not dot_chk:
____________p_files.append(p)
________else:
____________p_err_files.append(p)
____except FileNotFoundError as e:
________print(e, file=sys.stderr)
____except StopIteration:
________break
____for i in p_err_files:
________for j in p_err_files:
____________if str(i).startswith(str(j)):
________________if len(str(i)) > len(str(j)):
____________________p_err_files.remove(i)
print(*p_files, sep="\n")
print(*p_err_files, sep="\n")
109デフォルトの名無しさん
2021/10/08(金) 22:49:21.67ID:T4fYgd16 ドットで終わるディレクトリがあっても例外が発生しない場合があるようです。
例外が発生しない場合、このコードで正常・異常分類できてます
例外が発生した場合、探索が打ち切られているような感じです。
解釈間違ってるかも
例外が発生した場合、全件エラーにした方がよさそうです。
例外が発生しない場合、このコードで正常・異常分類できてます
例外が発生した場合、探索が打ち切られているような感じです。
解釈間違ってるかも
例外が発生した場合、全件エラーにした方がよさそうです。
110デフォルトの名無しさん
2021/10/08(金) 23:04:50.88ID:T4fYgd16 例外が発生しない場合でも
ドットで終わるファイル・ディレクトリを検出したら全件エラーのほうが安全かな
ドットで終わるファイル・ディレクトリを検出したら全件エラーのほうが安全かな
111デフォルトの名無しさん
2021/10/09(土) 08:06:03.22ID:3hwdJKmG class Person():
_def __init__(self, name, age):
__self.name = name
__self.age = age
_def sample1(self):
__print(self.name,self.age,self.f)
class JapanesePerson(Person):
_def __init__(self,name,age,f=False):
__self.name = name
__self.age = age
__self.f=f
class JapanesePerson2(Person):
_def __init__(self,name,age,f=False):
__super().__init__(name,age)
__self.f=f
yamada = JapanesePerson("山田", 30)
yamada.sample1()
yamada2 = JapanesePerson2("山田2", 20,True)
yamada2.sample1()
JapanesePersonとsuper()つかったJapanesePerson2って同じ意味っすよね?
super()使って書くのって継承したPersonにname,ageがあるぞっていう意味合いのためなんでしょうか?
_def __init__(self, name, age):
__self.name = name
__self.age = age
_def sample1(self):
__print(self.name,self.age,self.f)
class JapanesePerson(Person):
_def __init__(self,name,age,f=False):
__self.name = name
__self.age = age
__self.f=f
class JapanesePerson2(Person):
_def __init__(self,name,age,f=False):
__super().__init__(name,age)
__self.f=f
yamada = JapanesePerson("山田", 30)
yamada.sample1()
yamada2 = JapanesePerson2("山田2", 20,True)
yamada2.sample1()
JapanesePersonとsuper()つかったJapanesePerson2って同じ意味っすよね?
super()使って書くのって継承したPersonにname,ageがあるぞっていう意味合いのためなんでしょうか?
112デフォルトの名無しさん
2021/10/09(土) 08:45:15.87ID:TxyuJC/9 >>111
>JapanesePersonとsuper()つかったJapanesePerson2って同じ意味っすよね?
違うよ、super()を使った方は基底クラスPersonの属性name,ageに値をセットするが
JapanesePersonの方は基底クラスの方にセットせずに重複したJapanesePersonの属性name,ageにセットしている
Personを継承している意味がナッシング
>JapanesePersonとsuper()つかったJapanesePerson2って同じ意味っすよね?
違うよ、super()を使った方は基底クラスPersonの属性name,ageに値をセットするが
JapanesePersonの方は基底クラスの方にセットせずに重複したJapanesePersonの属性name,ageにセットしている
Personを継承している意味がナッシング
113デフォルトの名無しさん
2021/10/09(土) 09:52:36.10ID:3hwdJKmG >>112
そうなんですね
yamada.sample1() でself.name,self.ageが参照できてるので
なんのためにsuper().__init__でわざわざ値セットする必要があるんだろう??と気になったので。
def sample1(self):のselfってなんなんだ??みたいな
ありやした
そうなんですね
yamada.sample1() でself.name,self.ageが参照できてるので
なんのためにsuper().__init__でわざわざ値セットする必要があるんだろう??と気になったので。
def sample1(self):のselfってなんなんだ??みたいな
ありやした
114デフォルトの名無しさん
2021/10/09(土) 11:41:14.80ID:TxyuJC/9 >>108
>________for divided_path in str(p).replace("/", "\\").split("\\"):
>____________if divided_path[-1] == ".":
これはfor divided_path in p.parts: # で分割できる、pathlibの機能を使おう
更にここは内包表記で一気に書けて
_________if any(part.endswith('.') for part in p.parts):
よってdot_chk変数が不要になる
>____except FileNotFoundError as e:
>________print(e, file=sys.stderr)
これエラー表示してるだけだから、p_err_files.append(p) しといた方が良くない?
>____for i in p_err_files:
>________for j in p_err_files:
>____________if str(i).startswith(str(j)):
>________________if len(str(i)) > len(str(j)):
>____________________p_err_files.remove(i)
こっちの方が早いかも、短いし
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not j.match(i.name+'/*')]
>________for divided_path in str(p).replace("/", "\\").split("\\"):
>____________if divided_path[-1] == ".":
これはfor divided_path in p.parts: # で分割できる、pathlibの機能を使おう
更にここは内包表記で一気に書けて
_________if any(part.endswith('.') for part in p.parts):
よってdot_chk変数が不要になる
>____except FileNotFoundError as e:
>________print(e, file=sys.stderr)
これエラー表示してるだけだから、p_err_files.append(p) しといた方が良くない?
>____for i in p_err_files:
>________for j in p_err_files:
>____________if str(i).startswith(str(j)):
>________________if len(str(i)) > len(str(j)):
>____________________p_err_files.remove(i)
こっちの方が早いかも、短いし
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not j.match(i.name+'/*')]
115デフォルトの名無しさん
2021/10/09(土) 12:37:39.05ID:A9QtIjdU >>114
アドバイスありがとうございます。
内包表記覚えたいと思ってるんですがなかなか身につかないです
glob.glob使っていてpathlib.globに書き直したのでpathlibの他の機能何も知らない状態です
勉強しなきゃいけないこと多いな
>>____except FileNotFoundError as e:
>>________print(e, file=sys.stderr)
>これエラー表示してるだけだから、p_err_files.append(p) しといた方が良くない?
動作確認に使ってるだけなんで、printじゃなくpassでいいかと思ってます。
この例外のメッセージから有用な情報は得られませんでした
例外が発生する以前に、pathlib.globに限らずファイル関連の関数・クラスの挙動があやしいです
pathlib.globは試した範囲では1番挙動がまともでした
アドバイスありがとうございます。
内包表記覚えたいと思ってるんですがなかなか身につかないです
glob.glob使っていてpathlib.globに書き直したのでpathlibの他の機能何も知らない状態です
勉強しなきゃいけないこと多いな
>>____except FileNotFoundError as e:
>>________print(e, file=sys.stderr)
>これエラー表示してるだけだから、p_err_files.append(p) しといた方が良くない?
動作確認に使ってるだけなんで、printじゃなくpassでいいかと思ってます。
この例外のメッセージから有用な情報は得られませんでした
例外が発生する以前に、pathlib.globに限らずファイル関連の関数・クラスの挙動があやしいです
pathlib.globは試した範囲では1番挙動がまともでした
116デフォルトの名無しさん
2021/10/09(土) 13:10:11.80ID:A9QtIjdU >>114
>________p_err_files = [j for j in p_err_files if not j.match(i.name+'/*')]
j.match(i.name+'/*')] の部分なんですが、pathlibは'/'で決め打ちして大丈夫なんですか?
pythonが'/'と'\\'をどう使い分けてるかよくわからないです。
取得したパスが'/'と'\\'混在してたりするし・・・
>________p_err_files = [j for j in p_err_files if not j.match(i.name+'/*')]
j.match(i.name+'/*')] の部分なんですが、pathlibは'/'で決め打ちして大丈夫なんですか?
pythonが'/'と'\\'をどう使い分けてるかよくわからないです。
取得したパスが'/'と'\\'混在してたりするし・・・
117デフォルトの名無しさん
2021/10/09(土) 13:20:34.47ID:A9QtIjdU118デフォルトの名無しさん
2021/10/09(土) 13:22:15.13ID:TxyuJC/9 >>116
どっち使ってもいいし混在してもいいみたいですよ
>>____except FileNotFoundError as e:
>>________print(e, file=sys.stderr)
これ有益な情報が得られないとあるけど、どのディレクトリかファイルで例外発生したかは分かったの?
分からなかったらpも表示させた方がいいんでない?
どっち使ってもいいし混在してもいいみたいですよ
>>____except FileNotFoundError as e:
>>________print(e, file=sys.stderr)
これ有益な情報が得られないとあるけど、どのディレクトリかファイルで例外発生したかは分かったの?
分からなかったらpも表示させた方がいいんでない?
119デフォルトの名無しさん
2021/10/09(土) 13:49:18.15ID:A9QtIjdU >>118
例外発生したディレクトリの名前が信用できないんです
except FileNotFoundError as e: のところで分かるのは、発生したということだけです
恐らく発生したと思われるディレクトリ名は既にp_err_filesに入ってます
例外が発生したときのみ全件エラーにするなら何かフラグを立てたほうがいいと思います
今回はドットで終わるものを見つけたら、エラーログにp_err_filesを書き出して
全件処理しないのでこれで十分かと
その後、手作業でエラーログのすべてに対応すると思うので、例外発生個所の情報は使いません
例外発生したディレクトリの名前が信用できないんです
except FileNotFoundError as e: のところで分かるのは、発生したということだけです
恐らく発生したと思われるディレクトリ名は既にp_err_filesに入ってます
例外が発生したときのみ全件エラーにするなら何かフラグを立てたほうがいいと思います
今回はドットで終わるものを見つけたら、エラーログにp_err_filesを書き出して
全件処理しないのでこれで十分かと
その後、手作業でエラーログのすべてに対応すると思うので、例外発生個所の情報は使いません
120デフォルトの名無しさん
2021/10/09(土) 14:29:12.42ID:TxyuJC/9 >>119
いやいや、例外が発生する箇所はp = next(p_glob)のところで
そこからexcept FileNotFoundError as e: にジャンプしてくるわけですから
p_err_filesには入りません(p_err_filesに入るのは例外が発生しない場合です)
で、おそらくpの変数に代入する前のnext(p_glob)で例外が発生するから
その場合except FileNotFoundError as e:でpを表示させた場合は例外が発生する前のpなわけで
そのpの次にアクセスするディレクトリかファイルで例外が発生するということですよ、きっと
あと/と\\なんですけど、これはファイルパスの区切り文字でLinuxとかが/でWindowsは\\です
Pythonではどっち指定してもいいんですが、これをstr()で文字列にすると文字が違うわけですから
同じパスでも違うパスと判定してしまうので注意です
if str(i).startswith(str(j)):は危険です
いやいや、例外が発生する箇所はp = next(p_glob)のところで
そこからexcept FileNotFoundError as e: にジャンプしてくるわけですから
p_err_filesには入りません(p_err_filesに入るのは例外が発生しない場合です)
で、おそらくpの変数に代入する前のnext(p_glob)で例外が発生するから
その場合except FileNotFoundError as e:でpを表示させた場合は例外が発生する前のpなわけで
そのpの次にアクセスするディレクトリかファイルで例外が発生するということですよ、きっと
あと/と\\なんですけど、これはファイルパスの区切り文字でLinuxとかが/でWindowsは\\です
Pythonではどっち指定してもいいんですが、これをstr()で文字列にすると文字が違うわけですから
同じパスでも違うパスと判定してしまうので注意です
if str(i).startswith(str(j)):は危険です
121デフォルトの名無しさん
2021/10/09(土) 14:45:18.21ID:A9QtIjdU >>120
詳しく書きますね
最初ドットで終わるディレクトリに入れなくて例外すると考えていました。
テストしているとそうではないと思うようになってきました。
例外が発生原因はドットで終わるディレクトリです
でも必ず例外が発生するわけではありません
pathlib.globが最後に探索する箇所がドットで終わるディレクトリの場合、例外は発生しません
この状態でドットで終わるディレクトリのうしろに問題のないディレクトリを追加します
そうすると、ドットで終わるディレクトリではやはり例外は発生しません
例外が発生するのは次の問題のないディレクトリです
このとき、間違ったファイル名で処理をしようとしてFileNotFoundErrorが発生していると思われます
例外で取得できるのは問題のないディレクトリにアクセスするときの間違ったファイル名です
詳しく書きますね
最初ドットで終わるディレクトリに入れなくて例外すると考えていました。
テストしているとそうではないと思うようになってきました。
例外が発生原因はドットで終わるディレクトリです
でも必ず例外が発生するわけではありません
pathlib.globが最後に探索する箇所がドットで終わるディレクトリの場合、例外は発生しません
この状態でドットで終わるディレクトリのうしろに問題のないディレクトリを追加します
そうすると、ドットで終わるディレクトリではやはり例外は発生しません
例外が発生するのは次の問題のないディレクトリです
このとき、間違ったファイル名で処理をしようとしてFileNotFoundErrorが発生していると思われます
例外で取得できるのは問題のないディレクトリにアクセスするときの間違ったファイル名です
122デフォルトの名無しさん
2021/10/09(土) 15:09:43.07ID:TxyuJC/9 >>121
よく分かりました。それなら言われたとおり例外はpassするだけでいいですね
ところで
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not j.match(i.name+'/*')]
ですが、、
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not j.match(str(i/'*'))]
に訂正します
matchの中のstr(i/'*') は文字列にした場合区切り文字が\\になります
これをstr(i) + '/*'として/と\\を混在させてもmatchでは正常に動くようです
よく分かりました。それなら言われたとおり例外はpassするだけでいいですね
ところで
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not j.match(i.name+'/*')]
ですが、、
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not j.match(str(i/'*'))]
に訂正します
matchの中のstr(i/'*') は文字列にした場合区切り文字が\\になります
これをstr(i) + '/*'として/と\\を混在させてもmatchでは正常に動くようです
123デフォルトの名無しさん
2021/10/09(土) 15:30:28.23ID:Ngy1mnu3 printと書かない以外でなんか出力するのある?
124デフォルトの名無しさん
2021/10/09(土) 16:19:52.75ID:/xiMgjvY sys.stdout.write()
125デフォルトの名無しさん
2021/10/09(土) 16:24:43.13ID:dPZPc1xL WindowsというかDOSの頃から内部は/でもパス区切りできて
バックスラッシュ要求するのはシェルや一部のアプリ
単体プログラムなら/で書いたほうがポータビリティある
バックスラッシュ要求するのはシェルや一部のアプリ
単体プログラムなら/で書いたほうがポータビリティある
126デフォルトの名無しさん
2021/10/09(土) 18:09:17.61ID:JVX7Q22F >>121
Path.globでイテレータを作成した後に追加・削除されたファイルやディレクトリは
イテレーションに含まれるか含まれないかは不定なので
それでも困らないような使い方じゃなければ使い方が悪い
>例外で取得できるのは問題のないディレクトリにアクセスするときの間違ったファイル名です
問題のないディレクトリなのに間違ったファイル名なのか・・・・
全部読んでないからかよくわからん
Path.globでイテレータを作成した後に追加・削除されたファイルやディレクトリは
イテレーションに含まれるか含まれないかは不定なので
それでも困らないような使い方じゃなければ使い方が悪い
>例外で取得できるのは問題のないディレクトリにアクセスするときの間違ったファイル名です
問題のないディレクトリなのに間違ったファイル名なのか・・・・
全部読んでないからかよくわからん
127デフォルトの名無しさん
2021/10/09(土) 19:07:55.16ID:Ngy1mnu3 統合環境?総合環境?
おすすめの教えて
winでもマックでもリヌクスでもいいです
おすすめの教えて
winでもマックでもリヌクスでもいいです
128デフォルトの名無しさん
2021/10/09(土) 19:13:36.12ID:/xiMgjvY eric4
129デフォルトの名無しさん
2021/10/09(土) 19:19:03.79ID:A9QtIjdU130デフォルトの名無しさん
2021/10/09(土) 21:23:39.35ID:aguDhBGS >>127
Jupyter Notebook、Notebookの後継であるJupyterLab、
VSCode, Google Collaboratory
YouTube などで、よく紹介されているのは、Google Collaboratory
他には、WSL2, Linux, Docker
多言語のversion manager なら、asdf とか、
日本人が作った、バージョンマネージャーのanyenv とか
anyenvでは、19言語を統一された方法で、
nodenv, phpenv, pyenv, rbenv, goenv, jlenv などを使う。
Python ならpyenv、Julia ならjlenv
Python標準では、venv
多くの言語で、version manager の使い方を統一したいのなら、asdf, anyenv
Jupyter Notebook、Notebookの後継であるJupyterLab、
VSCode, Google Collaboratory
YouTube などで、よく紹介されているのは、Google Collaboratory
他には、WSL2, Linux, Docker
多言語のversion manager なら、asdf とか、
日本人が作った、バージョンマネージャーのanyenv とか
anyenvでは、19言語を統一された方法で、
nodenv, phpenv, pyenv, rbenv, goenv, jlenv などを使う。
Python ならpyenv、Julia ならjlenv
Python標準では、venv
多くの言語で、version manager の使い方を統一したいのなら、asdf, anyenv
131デフォルトの名無しさん
2021/10/09(土) 23:27:09.55ID:cIVnj/jm132130
2021/10/10(日) 00:15:53.95ID:lB7MFpHR プロ用では、anyenv から、Docker へ移行していくだろう
133デフォルトの名無しさん
2021/10/10(日) 05:07:59.49ID:wTu2fZfo tkinterにドラッグアンドドロップつける
tkinterDnD2というやつ
dnd_root.bind(<Drop>, callback)
callback(ev):
__files = dnd_root.splitlist(ev.data)
みたいに書きます
このevてdndEventクラスで
http://tkinterdnd.sourceforge.net/TkinterDnD.html#DnDEvent
にあるように、いくつかの属性にアクセスできるんだけど
この属性のそれぞれが何を意味してるのかっていうのは、どこに書いてあるんでしょうか
ドキュメント的なものを探してるんだけど、見当たらなくて
tkinterDnD2というやつ
dnd_root.bind(<Drop>, callback)
callback(ev):
__files = dnd_root.splitlist(ev.data)
みたいに書きます
このevてdndEventクラスで
http://tkinterdnd.sourceforge.net/TkinterDnD.html#DnDEvent
にあるように、いくつかの属性にアクセスできるんだけど
この属性のそれぞれが何を意味してるのかっていうのは、どこに書いてあるんでしょうか
ドキュメント的なものを探してるんだけど、見当たらなくて
134デフォルトの名無しさん
2021/10/10(日) 08:00:27.46ID:kKlMir+m >>133
https://www.ellogon.org/petasis/index.php/tcltk-projects/tkdnd/tkdnd-man-page#lbAI
TkinterDnD.pyは読んでる前提
https://www.ellogon.org/petasis/index.php/tcltk-projects/tkdnd/tkdnd-man-page#lbAI
TkinterDnD.pyは読んでる前提
135デフォルトの名無しさん
2021/10/10(日) 09:09:58.87ID:wTu2fZfo >>134
おー助かりました
おー助かりました
136デフォルトの名無しさん
2021/10/10(日) 09:10:27.91ID:YLnhElYI137デフォルトの名無しさん
2021/10/10(日) 11:33:12.15ID:ykpYSE0z 私の開発環境はIDLEとGVIMだわ、大したことやってないし
138デフォルトの名無しさん
2021/10/10(日) 12:39:25.44ID:H4xzBt6k importで頭が混乱してきました
https://pastebin.com/tRafMmRt
sample0.pyのimport sample2で、sample2内のsample1がimportされると思ったのですが
結果、importはされませんでした
そう判断したのは、sample0→sample2でのsample1のimportで
printもされず、BASEのランダムも生成されなかったからです
これは、sample0.pyでsample1をすでにimportしているので
sample2内のsample1のimportは省略というか、
sample0でのsample1のimportを引き継いだ
みたいなことでいいのでしょうか・・?
https://pastebin.com/tRafMmRt
sample0.pyのimport sample2で、sample2内のsample1がimportされると思ったのですが
結果、importはされませんでした
そう判断したのは、sample0→sample2でのsample1のimportで
printもされず、BASEのランダムも生成されなかったからです
これは、sample0.pyでsample1をすでにimportしているので
sample2内のsample1のimportは省略というか、
sample0でのsample1のimportを引き継いだ
みたいなことでいいのでしょうか・・?
139デフォルトの名無しさん
2021/10/10(日) 13:16:40.64ID:kKlMir+m >>138
そう
あちこちにあるimport sys他が都度走るのはいやだし
https://docs.python.org/ja/3/reference/import.html
他の動作も可能だけれどフレームワーク実装とか特殊なケースでなければ
モジュール側でうまく対応した方が良い。
そう
あちこちにあるimport sys他が都度走るのはいやだし
https://docs.python.org/ja/3/reference/import.html
他の動作も可能だけれどフレームワーク実装とか特殊なケースでなければ
モジュール側でうまく対応した方が良い。
140デフォルトの名無しさん
2021/10/10(日) 13:24:05.94ID:H4xzBt6k >>139
なるほど・・
どうもimportするたびに新規発行されるみたいなイメージが強くなってしまって・・
>あちこちにあるimport sys他が都度走る
たしかにそうですよね
ありがとうございました
なるほど・・
どうもimportするたびに新規発行されるみたいなイメージが強くなってしまって・・
>あちこちにあるimport sys他が都度走る
たしかにそうですよね
ありがとうございました
141デフォルトの名無しさん
2021/10/10(日) 14:08:59.72ID:PpP5FnLO >>114
>>122
for x in range(500000):
p_err_files = p_err_files_org.copy()
for i in p_err_files:
for j in p_err_files:
if str(i).replace("/", "\\").startswith(str(j).replace("/", "\\")):
if len(str(i)) > len(str(j)):
p_err_files.remove(i)
7秒
for x in range(500000):
p_err_files = p_err_files_org.copy()
for i in p_err_files:
p_err_files = [j for j in p_err_files if not j.match(str(i/'*'))]
97秒
p_err_filesの内容によってどう変わるかわかりませんがかなり遅いです
綺麗な書き方だけにどうにかしたい
報告です。質問じゃないです
>>122
for x in range(500000):
p_err_files = p_err_files_org.copy()
for i in p_err_files:
for j in p_err_files:
if str(i).replace("/", "\\").startswith(str(j).replace("/", "\\")):
if len(str(i)) > len(str(j)):
p_err_files.remove(i)
7秒
for x in range(500000):
p_err_files = p_err_files_org.copy()
for i in p_err_files:
p_err_files = [j for j in p_err_files if not j.match(str(i/'*'))]
97秒
p_err_filesの内容によってどう変わるかわかりませんがかなり遅いです
綺麗な書き方だけにどうにかしたい
報告です。質問じゃないです
142デフォルトの名無しさん
2021/10/10(日) 15:13:50.14ID:ykpYSE0z >>141
ふむ、matchが遅いのだろうね、、じゃあ二人の良いところをドッキングしよう
for x in range(500000):
____p_err_files = p_err_files_org.copy()
____for i in p_err_files:
________i = str(i).replace("/", "\\") + '\\' #replaceのせいで見にくいからあえて別にしてみました
________p_err_files = [j for j in p_err_files if not str(j).replace("/", "\\").startswith(i)]
これは3秒いっちゃうんじゃない?
ところで/と\\って混在するの? pathlib.Pathをstr変換するとOSに合わせた区切り文字で文字列化しない?
replaceいらないんじゃない? いや、私も昔混在しててエラーになった経験があるんだけども
それって文字列化してから自分でスラッシュを足して混在させてたような気がしてきた
今適当にやってみても混在しないし・・さ
ふむ、matchが遅いのだろうね、、じゃあ二人の良いところをドッキングしよう
for x in range(500000):
____p_err_files = p_err_files_org.copy()
____for i in p_err_files:
________i = str(i).replace("/", "\\") + '\\' #replaceのせいで見にくいからあえて別にしてみました
________p_err_files = [j for j in p_err_files if not str(j).replace("/", "\\").startswith(i)]
これは3秒いっちゃうんじゃない?
ところで/と\\って混在するの? pathlib.Pathをstr変換するとOSに合わせた区切り文字で文字列化しない?
replaceいらないんじゃない? いや、私も昔混在しててエラーになった経験があるんだけども
それって文字列化してから自分でスラッシュを足して混在させてたような気がしてきた
今適当にやってみても混在しないし・・さ
143デフォルトの名無しさん
2021/10/10(日) 16:01:08.25ID:PpP5FnLO144デフォルトの名無しさん
2021/10/10(日) 16:15:29.74ID:PpP5FnLO 混在するのいやだから自分でつなぐときos.path.join使ってます
今ソース確認したけど"/"使ってない
今ソース確認したけど"/"使ってない
145デフォルトの名無しさん
2021/10/10(日) 16:23:35.36ID:ykpYSE0z146デフォルトの名無しさん
2021/10/10(日) 17:00:09.47ID:PpP5FnLO 取得したばかだから混在はないですね
最終形
for x in range(500000):
____p_err_files = p_err_files_org.copy()
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not str(j).startswith(str(i) + os.sep)]
最終形
for x in range(500000):
____p_err_files = p_err_files_org.copy()
____for i in p_err_files:
________p_err_files = [j for j in p_err_files if not str(j).startswith(str(i) + os.sep)]
147デフォルトの名無しさん
2021/10/10(日) 17:10:38.07ID:ykpYSE0z >>146
う、美しい、、os.sepもエレガント
う、美しい、、os.sepもエレガント
148デフォルトの名無しさん
2021/10/10(日) 20:43:45.45ID:PpP5FnLO ありゃ、バグってたかも(最終形じゃないやつ)
新コード 14秒
for x in range(5000):
____p_err_files = [str(p) for p in p_err_files_org]
____for i_idx, i in enumerate(p_err_files[:-1]):
________for j in p_err_files[i_idx + 1:]:
____________if j.startswith(i + os.sep):
________________p_err_files.remove(j)
____p_err_files = [pathlib.Path(p) for p in p_err_files]
最終形って書いたコード 56秒
新コードがバグってないかよくテストしなければ
新コード 14秒
for x in range(5000):
____p_err_files = [str(p) for p in p_err_files_org]
____for i_idx, i in enumerate(p_err_files[:-1]):
________for j in p_err_files[i_idx + 1:]:
____________if j.startswith(i + os.sep):
________________p_err_files.remove(j)
____p_err_files = [pathlib.Path(p) for p in p_err_files]
最終形って書いたコード 56秒
新コードがバグってないかよくテストしなければ
149デフォルトの名無しさん
2021/10/10(日) 21:08:00.05ID:PpP5FnLO 最初のデータだと
新コード 14秒
最終形って書いたコード 4秒
件数が多いと新コードが早い
新コード 14秒
最終形って書いたコード 4秒
件数が多いと新コードが早い
150デフォルトの名無しさん
2021/10/10(日) 21:41:11.57ID:ykpYSE0z for x in range(5000):
____p_err_files = p_err_files_org.copy()
____for i in p_err_files:
________if i.is_dir():
____________i = str(i) + os.sep
____________p_err_files = [j for j in p_err_files if not str(j).startswith(i)]
最速のコード・・できました、、これは2秒台かもしれん
最後がドットのディレクトリでis_dir()ができるのか知りませんが
____p_err_files = p_err_files_org.copy()
____for i in p_err_files:
________if i.is_dir():
____________i = str(i) + os.sep
____________p_err_files = [j for j in p_err_files if not str(j).startswith(i)]
最速のコード・・できました、、これは2秒台かもしれん
最後がドットのディレクトリでis_dir()ができるのか知りませんが
151デフォルトの名無しさん
2021/10/10(日) 22:14:56.87ID:PpP5FnLO152デフォルトの名無しさん
2021/10/10(日) 22:25:50.37ID:PpP5FnLO 件数の多いデータ loop回数減らしてます
新コード 2秒
最終形って書いたコード 11秒
isdir 60秒
新コード 2秒
最終形って書いたコード 11秒
isdir 60秒
153デフォルトの名無しさん
2021/10/10(日) 22:53:16.01ID:fsOtTZsl > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【サッカー】上田綺世の活躍は「一過性」 15戦18発も…オランダ英雄は懐疑的な姿勢「確信に至っていない」 [ゴアマガラ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【サッカー】元日本代表DF冨安がオランダ1部アヤックスと大筋合意か 現地メディア報じる [久太郎★]
- 【画像】小泉防衛大臣の頭皮、存立危機に認定 [834922174]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 🏡
- 高市早苗「竹島は日本領土」 [834922174]
- GDP世界二位だった日本国が、ここまで衰退腐敗してしまった理由って冗談抜きで何????? [804169411]
