当スレに★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は違うと思うんですが・・・
2021/10/06(水) 00:53:55.80ID:63dnmtAL
2021/10/06(水) 01:06:01.53ID:uIHfQozZ
2021/10/06(水) 01:14:22.59ID:63dnmtAL
じゃあ、例えば以下のファイル名(パス)の場合、
どんな結果を期待しているの?
file = r'..txt'
file = r'test.txt'
file = r'test.tar.xz'
file = r'test'
file = r'.\test.txt'
file = r'c:\test.txt'
file = r'c:/test.txt'
file = r'C:\dir\.test'
file = r'C:\dir\.test.txt'
file = r'C:\dir\test'
どんな結果を期待しているの?
file = r'..txt'
file = r'test.txt'
file = r'test.tar.xz'
file = r'test'
file = r'.\test.txt'
file = r'c:\test.txt'
file = r'c:/test.txt'
file = r'C:\dir\.test'
file = r'C:\dir\.test.txt'
file = r'C:\dir\test'
5045
2021/10/06(水) 01:18:15.89ID:sqxilgxU 隠しファイルか?
Ruby のglob でも、. で始まる、directory, file を除くから、
こういうのを許すと、バグのもと
特殊ファイルを作らせたら、ダメ
Ruby のglob でも、. で始まる、directory, file を除くから、
こういうのを許すと、バグのもと
特殊ファイルを作らせたら、ダメ
2021/10/06(水) 01:22:00.09ID:uIHfQozZ
>>49
'.' txt'
'test' 'txt'
'test.tar' 'xz'
'test' ''
相対パスは扱わない、というか、basenameを処理
'test' 'txt'
basenameを処理
'' 'test'
'.test' 'txt'
'test' ''
'.' txt'
'test' 'txt'
'test.tar' 'xz'
'test' ''
相対パスは扱わない、というか、basenameを処理
'test' 'txt'
basenameを処理
'' 'test'
'.test' 'txt'
'test' ''
2021/10/06(水) 01:27:53.38ID:uIHfQozZ
2021/10/06(水) 01:49:05.27ID:63dnmtAL
>>51
.test は ファイル名じゃなくて拡張子として扱うのかぁ
.test は ファイル名じゃなくて拡張子として扱うのかぁ
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するときに必ず行う処理)を示すような書き方があれば
と思ったのですがなさそうですね
ありがとうございました
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★5 [蚤の市★]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- 【超速報】統一教会、陳謝 [519511584]
- 高市政権「かけてもつながらない。機能していない」防衛当局間のホットライン機能せず [834922174]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑★2 [931948549]
