【まず1嫁】くだすれPython(超初心者用) その53

■ このスレッドは過去ログ倉庫に格納されています
2021/03/16(火) 07:19:44.36ID:PfTIXkDh
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合は、
  表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードう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

〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/

次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
420デフォルトの名無しさん
垢版 |
2021/04/22(木) 23:48:13.63ID:1DYnxoLB
>>419
以下サンプルコード

y_2 = 0.04
y_1 = 0.4
x_2 = 0.0
m = 1
lgr = 2.2
# Calculation
#
x_1_ast = y_1 / m # x*_1
ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
print(ys) # 分割点を表示
xs = y_to_x(ys, y_2, x_2, lgr) # ys の各点に対応する xs を計算

以上サンプルコード
y_2, y_1, mが他の値だった場合にどんなグラフになるかというのを一つの図で表示するのが課題なんだけど

y_2 = np.array([0.04, 0.02, 0.02)]
m = np.array([0.04, 0.02, 0.02)]
と変更すると
x_1_ast = y_1 / m
の部分で「リスト同士の除算は〜」みたいなエラーメッセージで弾かれた。
2021/04/23(金) 00:06:55.92ID:nXIvCLH2
書いてあるとおりnp.array同士では除算が定義されていないのでできないのだが
「どうなって欲しいか」とか「どういう値を求めたいか」とか
そういうことを教えてくれないと解決策は示せない
422デフォルトの名無しさん
垢版 |
2021/04/23(金) 00:24:12.09ID:Ds5Mqwcd
最終的には3つの各々の条件下での折れ線グラフを描きたい。
そのために必要なのがy_1, y_2, x_2, x_1_astの各条件での各々の数値なんだけど、
x_1_astは求めようとしてもエラーしか表示されないから詰んでる
2021/04/23(金) 00:32:28.03ID:6A70qFGF
np.array同士の除算できるけど?
424デフォルトの名無しさん
垢版 |
2021/04/23(金) 00:54:37.81ID:WdOS9cbk
みたいなエラーメッセージってなんやねん
そんな適当な情報で分かる訳ないやん
2021/04/23(金) 01:15:39.35ID:u+P4/XB4
numpy.ndarray

を見ると
んんだらアレイ
と読みがち
2021/04/23(金) 03:03:36.79ID:edw1EohB
>>420
自分で書いたコードを>>1に書いてあるサイトに張って
エラーメッセージをちゃんと全文書け

少なくともサンプルコードと書かれてる変更だけ加えてもエラーでないし
numpyはリスト同士の除算もできるし、実際のコード見ないとエスパーじゃない限り分からん
2021/04/23(金) 07:14:01.60ID:M88Kc634
>>425
N-Dimension-Array、N次配列の略じゃないか
428デフォルトの名無しさん
垢版 |
2021/04/23(金) 10:32:16.79ID:6lQGggig
>>424
本当に申し訳ないが、pythonは齧った程度しか触ったことがなくて、エラーの内容も調べた限りではそんな感じのことを言っていた。としか言いようがなかった
429デフォルトの名無しさん
垢版 |
2021/04/23(金) 10:47:36.13ID:6lQGggig
>>426
https://techiedelight.com/compiler/?PrKN
↑ソースコード全部(多分合ってるはず)

以下エラーメッセージ
ValueError Traceback (most recent call last)
<ipython-input-22-a6ecd68a1745> in <module>()
44 ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
45 print(ys) # 分割点を表示
---> 46 xs = y_to_x(ys, y_2, x_2, lgr) # ys の各点に対応する xs を計算
47 # ==================================================================
48 # 作図

<ipython-input-22-a6ecd68a1745> in y_to_x(ys, y_2, x_2, lgr)
23 yy_2 = y_to_yy(y_2) # Y_2
24 xx_2 = y_to_yy(x_2) # X_2
---> 25 xxs = (yys - yy_2) / lgr + xx_2 # Xs=(Ys-Y_2) / LGR + X_2
26 xs = xx_to_x(xxs) # xs = xx_to_x(Xs)
27 return xs

ValueError: operands could not be broadcast together with shapes (7,) (6,)

要はlgrの値が0.5から増えていくとグラフはこのように移動していきます、ってのを表示させればいいんだけど、配列っぽくしてみたら詰んだ
どうせ課題の提出期限も切れたしこれを機にゆっくり勉強してみます。
2021/04/23(金) 11:04:30.97ID:6A70qFGF
(yys - yy_2) は要素数7でlgrは要素数6
形が違うので割り算できないよってこと
2021/04/23(金) 11:43:43.46ID:edw1EohB
>>429
>lgr = [0.5, 1.0, 1.5, 2.0, 2.5, 3.0] # 液ガス比 L'_M / G"_M
lgrnの要素数が6つで
>ys = np.linspace(y_2, y_1, 7) # 区間 [y_2, y_1] を 6 (=7-1) 分割
ysの要素数は7つで返ってくるから、要素数が違ってる関係でエラーになる

で、解決方法としては要素数を合わせればいいから
lgrに3.5を追加する、またはlinspaceの引数を6に変更すれば後は動く

以下はlgrに3.5を追加した場合のグラフ
https://i.imgur.com/gOS7wdU.png
2021/04/23(金) 14:06:41.92ID:lnQ2Wtpu
>>419
詰んだじゃなくて考えろよ
分からないなら調べろ
何しに大学行ってんだよ
2021/04/23(金) 21:14:39.28ID:Sg24bGS7
大卒らしいのに小卒みたいな奴っておるやん
そういう人種だと思っていただきたい
434デフォルトの名無しさん
垢版 |
2021/04/23(金) 23:28:58.65ID:dmYMi7DT
どうでもいいけどpython全然わからんて人向けの課題じゃない気が
2021/04/23(金) 23:49:43.39ID:5bcZIOw5
サボっててついて行けてないだけだろ
436デフォルトの名無しさん
垢版 |
2021/04/24(土) 11:34:27.43ID:V3n+Hqik
Tkinterでウィンドウの移動をマウスのドラッグで実施したいのですが、
タイトルバーではなく、表示部分?をドラッグする方法ってありませんか?
画像をサブウィンドウで表示させているのですが、タイトルを表示せず画像だけのサブウィンドウにしたくてお願いいたします
437デフォルトの名無しさん
垢版 |
2021/04/24(土) 21:25:16.04ID:7lpOLCJL
ファイルパスを受け取って画像かどうかを返す、シンプルな関数を作りたい
偽装(mimetypes)とか誤認(imghdr)とか避けたい

import pathlib
import filetype
path = pathlib.Path(xxx)
if path.is_file():
__is_img(path)
#
def is_img(path):
__answer = False
__obj = filetype.guess(str(path))
__if obj is not None:
____if obj.mime[:6] == "image/":
______answer = True
__returen answer

いまこんな感じなんですが、これで大丈夫だと思いますか?
一応手元で偽装ファイルとか色々投げて、問題ないっぽい雰囲気ではあるのですが…
また、もっと簡単な方法があれば教えてください
438デフォルトの名無しさん
垢版 |
2021/04/24(土) 21:49:17.04ID:PnhVzGZB
python2のvirtualenv入れようと思って
python -m pip install virtualenv
ってやったら、複数の関連パッケージの処理をやったあとで
エラーで終了したんですが、こういう場合、そこまでに
動いた処理は元に戻る?それとも中途半端に放置される?
このあとで別の方法でパッケージインストールしたら、
最初に失敗したときの処理は中途半端な状態で残ることに
なるんじゃないかと思って気になってます。

今までこういう場合はもうよくわからないのでOSごと
再インストールしてたんですが、どなたか知ってる方が
いたら教えてください
2021/04/24(土) 22:00:35.42ID:h9VLhHSB
PIL.Imageで開けるか開けないか
2021/04/25(日) 00:57:11.71ID:VZsvyaQ9
>>437
filetypeはjpg/png/gifの場合最初の2〜3バイトしか読まないので
https://github.com/h2non/filetype.py/blob/53bdccee0371fcc9463e2edd68d2cedb589d3a76/filetype/types/image.py#L23
その先頭2〜3バイトが偽装されていれば誤認する
そういうのが嫌なら439のように画像としてロードできるかまで確認すべきだ

ただし、437が想定するファイルを「偽装」してくるアタッカーがどういう人物像なのか不明なので
一概にどちらにすべきとは言えない
偽装ファイルでexploitを突こうと画策されているのでもなければfiletypeで十分だろう
2021/04/25(日) 01:16:14.07ID:FsB+Ww+M
画像として読み込める偽装データもないっけ
保持するつもりなら万全を期して読み込んで保存し直すくらいまでしたほうがいいかも
2021/04/25(日) 09:46:28.78ID:0VwYrDNE
>>441
あるよ
画像データの末尾以降を使ってるパターンは知ってる
2021/04/25(日) 11:58:20.51ID:1lzxcbvy
画像ファイルだが読まれない部分に割れ物の断片を入れられてる…みたいな偽装と
ヘッダは画像ファイルだが中身は画像ではないという偽装は
ちょっと別の話かと
2021/04/25(日) 12:35:46.60ID:FsB+Ww+M
別だから別に言ってるんだが
何が問題なん?
2021/04/25(日) 13:44:38.33ID:J5zsPVXp
pandasでデータフレームを作成するときに

df = pd.DataFrame({'C': namae, 'A': tokuten, 'B': tokuten2})
のようにして実行すると、A, B, C の順に列が並んでしまいます。
C, A, B の順番に列を並ばせてつくりたいのですが、どうすればいいですか?
446デフォルトの名無しさん
垢版 |
2021/04/25(日) 14:54:36.65ID:wFtgTR9d
Pythonのバージョンによっては、dictは順序保証しないからじゃないの?
横着せずにシーケンス(list/tuple)を使えばよい。
447デフォルトの名無しさん
垢版 |
2021/04/25(日) 15:05:09.87ID:w/gigbrd
>>442
バイナリ連結ですよね
これって判定と連結部の削除ってできるんですか?
2021/04/25(日) 15:22:02.13ID:0VwYrDNE
できないなら取り出すアプリつくれないだろJK
449デフォルトの名無しさん
垢版 |
2021/04/25(日) 15:43:50.39ID:stjG7043
判定・削除というからには、鍵を持たない第三者が偽装かどうかを見抜けるかという話でしょ
2021/04/25(日) 15:52:52.45ID:FsB+Ww+M
いちいち妙な判定しようとせずに
画像としてメモリに展開して
再保存すりゃいいだけじゃね
ついでに圧縮率も変えられるし
2021/04/25(日) 15:53:07.93ID:piDGyGmF
コンテナ利用するときにvirtualenvs併用するメリットってなんでしょう?
コンテナ内部で更にvirtualenvs使うのは二度手間なように感じています。
2021/04/25(日) 15:59:25.19ID:KtTIhOup
言われてみりゃそうだな
453デフォルトの名無しさん
垢版 |
2021/04/25(日) 16:25:49.08ID:yZn73yTF
>>451
デプロイ先でvenv使ってるなら、それに近い環境で動作を検証できる
何かvenv下だと挙動が変わるモジュールとかあるし
454デフォルトの名無しさん
垢版 |
2021/04/25(日) 16:32:15.73ID:Uff2BRsY
>>445

https://note.nkmk.me/python-pandas-reindex/
2021/04/25(日) 17:38:00.13ID:OYNPlpSe
コンテナで仮想環境使うのはアンチパターンやぞ
2021/04/25(日) 18:34:24.22ID:Fk25aiPG
>>454
ありがとうございます。
457デフォルトの名無しさん
垢版 |
2021/04/25(日) 19:16:36.74ID:sodTi8GH
>>445
一旦作ったやつを並び替える、でもいいのなら、
df2 = df[['C', 'A', 'B']]
でdf2はC A Bの順にできるよ。
2021/04/25(日) 22:09:06.87ID:piDGyGmF
>>453
なるほど、もともとvenv使っててその後コンテナ利用に切り替えたパターンを想定とかですかね
今勉強というか適当にdocker調べつつ触ってるんですが、venv使ってるようなのもあってこれ何のためって不思議でした

>>455
ありがとうございます
ネットの情報多くてありがたいんですが玉石混淆だったり古かったりで逆に混乱しますな
459デフォルトの名無しさん
垢版 |
2021/04/28(水) 09:48:30.09ID:IxwcvE22
どうしてPython使ってる人ってswitch-caseなくても我慢できるんですか?
それしか知らないから不満を持ちようがないとか?
2021/04/28(水) 09:58:49.52ID:Lpz9/b/L
我慢できるとかじゃなく、ないものはしょうがないだろ。
それがどうしても嫌ならpythonを使わなければいい。
なんらかの理由でpythonを使う(使わなければいけない)のなら、
他の人も同様でしょ。
2021/04/28(水) 10:21:09.69ID:hp9xP/+6
似たような処理は代入演算子とif,elif,elseでできるって書いてあったよ
462デフォルトの名無しさん
垢版 |
2021/04/28(水) 10:57:42.68ID:C/XDgQGy
パターンマッチングも結局、式ではなく文なんだな。
2021/04/28(水) 11:11:25.75ID:3EuQZ3Ew
pythonみたいな構造体がきっちりしてるわけでもない言語なら
そこまでパターンマッチ必要にはならんだろ。
構造体からデータ取り出すのがそこまで面倒な言語でもない。
2021/04/28(水) 11:38:24.28ID:ewi3Y8j6
>>461
switch(a){ ... } みたいなやつなら良いけど switch(a + 1){ … } とかだと一時変数を作るか各条件式にa + 1とか書くはめになるからねぇ
switch文があるに越したことはないと思う
2021/04/28(水) 12:33:15.42ID:Je4EzdV5
構造体に使うイメージはなかったな
昨今のtypingの流儀に乗っかったんだと思う
2021/04/28(水) 13:19:32.28ID:hp9xP/+6
>>464
そうだね…
a := a + 1も便利なんだけどね…
2021/04/28(水) 17:02:16.33ID:EhiFgjxN
文増えてくと混沌としてくるから今のPythonの流れはちょっとどうなのかなと思うところはある
2021/04/28(水) 17:57:38.85ID:tBbflF5J
python3.10か3.11でパターンマッチ来るんだっけ
469デフォルトの名無しさん
垢版 |
2021/04/28(水) 21:15:45.49ID:kjLpBedQ
>>459
それ一つ無い程度で使う使わないの瀬戸際にはならない
そもそもswitch-caseで分岐する必要が出てきた時点でロジック設計を失敗している事が多い
ポリモーフィズムを活用するべき
2021/04/28(水) 21:23:17.33ID:jo1UoyuU
switch-caseって、条件が等差数列となるときはjmp先を演算できるよねとできた
実にCらしい構文で、そういうことをしない言語にとっては実装が面倒なだけの構文かと
2021/04/28(水) 21:27:42.21ID:7X7PmWB6
if文でやると汚くなる言語がswitchに逃げたとみたらどう
2021/04/28(水) 21:46:19.33ID:HN4XQcog
>>459
我慢できなくなったから機能追加するんだよ

いままで散々switchなんて不要って言って来たから
取り繕うための言い訳を並べ立てながらだけどね
2021/04/28(水) 22:03:43.50ID:lX6x7Umv
最近C#からswitch実質なくなったと聞いたぞ
中で
2021/04/28(水) 22:04:33.39ID:lX6x7Umv
中で条件式とか使えるようになって実質IFの羅列になったとか
2021/04/28(水) 22:10:35.31ID:RJLrCSIQ
>>472
パーサーを置き換えるのが面倒くさかったからだと思ってる
2021/04/29(木) 17:24:45.07ID:hj4NO6UY
>>459
Pythonユーザーには2タイプ居る
・それしか知らない奴
・色々な言語使ってきて、なんらかの良さを感じるからPython使ってる奴
どんな言語にも多少の欠点はあるもんさ
2021/04/29(木) 18:11:22.33ID:8Iq2BU/P
リテラルな値でのswitchならenumでシンプルにかけるしな
2021/04/29(木) 20:52:09.39ID:naaqk/s1
ライブラリ使ってるとたまに
hoge(option=DEFAULT_TYPE)
みたいな感じでオプションを設定できるのがあったと思うのですが
このDEFAULT_TYPEの部分は変数を定義した覚えもないのに使えてた気がします
どういう仕組みなのでしょうか
2021/04/29(木) 20:55:11.65ID:hj4NO6UY
from なんかのライブラリ import *
とかでその定数をimportしてると思うよ
2021/04/30(金) 09:28:09.56ID:MB7wv8yI
オブジェクト指向は全然分からないからクラスの定義は出来ない
でも関数だけで何とか出来ちゃうから有難いわ
2021/04/30(金) 09:55:14.88ID:rWXbtYRM
>>479
なるほど
どのライブラリだったか忘れて確かめられませんが
読み込み先でDEFAULT_TYPEをprintすれば何かわかりそうですね

#hoge.py
DEFAULT_TYPE='default'
class Hoge:
def fuga(self,*,option=None):
print('Option: %s'%option)

#
from hoge import Hoge,DEFAULT_TYPE
h=Hoge()
h.fuga(option=DEFAULT_TYPE)

上のようにimportでDEFAULT_TYPEしていたかどうか
でなければhoge.DEFAULT_TYPEという指定だったか記憶が曖昧ですが
こんな感じでできました
import DEFAULT_TYPEしなくてもDEFAULT_TYPEだけでいけた気がするのですが
記憶違いだったかもしれません
482デフォルトの名無しさん
垢版 |
2021/04/30(金) 15:52:58.65ID:4ngw0sc5
tkinterのdestroy()って親を殺せば子は見逃しても問題ない?
全部明示して殺す必要ありますか?
ガベージコレクションが頑張るから大丈夫なのかな
2021/04/30(金) 21:22:20.53ID:S74Hi/jw
親をdestroyすれば子供子孫すべてdestroyする
2021/04/30(金) 21:47:35.28ID:Xt8J6sgV
通報しませんでした
2021/04/30(金) 22:00:05.11ID:9cqxfo3+
def destroy(self):

for c in list(self.children.values()): c.destroy()

親は子供を殺すが孫は殺さない
子供が孫を殺す
2021/04/30(金) 22:10:04.55ID:lUzIA11U
殺すとか殺さないとか
物騒なスレですね
2021/04/30(金) 22:57:56.75ID:sx17ZQMm
gc働かないん?
488デフォルトの名無しさん
垢版 |
2021/05/01(土) 06:16:19.35ID:Ca2DZO3D
stack overflowの書き込みで、親が死ねば孤独になった子供はGCがやがて消す
消えるまでメモリには残る って書いてあった気がする
2021/05/01(土) 07:41:58.14ID:PUOqmJZW
>>483
>488だで

うちはtkinterじゃなくてWXつかってるが、>488だで
自分で子孫まるっとあぼんする関数つくって積んでる
490デフォルトの名無しさん
垢版 |
2021/05/01(土) 08:15:27.05ID:gyFQOP1a
>>477
そのswitchの代わりという使い方だと、PythonのEnumはいまいちですわ。
JavaのEnumがまさにそういう使い方ができるようになっている(Strategy/Stateパターン)。
2021/05/01(土) 10:02:13.72ID:qiYKVwJr
syntaxエラーをチェックするツールありますか?
2021/05/01(土) 12:52:24.80ID:R4IHrQy8
python -m py_compile ソースファイル
2021/05/01(土) 13:22:27.14ID:qiYKVwJr
>>492
ありがとうございました。
*.pyでソースを指定したら全部.pycが出来上がり、ノーエラーでした。
試しにwhileの:を削除してみたらSyntaxErrorの指摘が表示されました。
これで安心です。
494デフォルトの名無しさん
垢版 |
2021/05/01(土) 13:29:51.59ID:psDEcvhX
flake8とか使えば良くない…?
2021/05/01(土) 13:50:54.37ID:oZHy3HfC
うちはflake8とblack派だけど勉強になった
2021/05/01(土) 13:52:21.43ID:jntNu2g9
linterだと、実際動くかどうかまではわからないことが多いと思う

いくつかあるlinterの中では俺もflake8を使ってるわ
2021/05/01(土) 17:57:55.31ID:qiYKVwJr
PyQtで自動生成されるuiソースもflake8で結構色々でますね。
自分のソースは通信系なのでtry/except入れているのでsyntaxエラーさえも例外で通信リカバリーみたいになるので悩んでました。
498デフォルトの名無しさん
垢版 |
2021/05/01(土) 21:57:09.95ID:qfW/WcRP
>>496
Syntax Errorはちゃんとでるんでないかい?
一方で、こういう逆のケースはある。
globals()['tau'] = 6.283185
print(tau) # linterやIDEではエラーとでるけど、実際にはちゃんと動く
2021/05/02(日) 15:17:35.67ID:v2ZnBcL1
a = ['a','b','c']
if not a[3]:
_print()

javascriptみたいにundefinedになってくれればと思ったのですが
pythonはIndexErrorが出るみたいですね
これを場合分けしようと思うと、try使うしかないですよね?
list index out of rangeの場合はelseそれ以外は値を取得
みたいにifだけ書きたいと思ったんですけどね
2021/05/02(日) 15:20:45.85ID:Eu1LZK3p
idx < len(a)でインデックスが範囲内にあることを確認するとか?
2021/05/02(日) 15:20:49.97ID:zAlV+S16
dictならそういうのあるけどlistはないな
len(list)で長さ確認してから取得するか、try-catchするしか無い
502デフォルトの名無しさん
垢版 |
2021/05/02(日) 20:42:49.07ID:x2TfprvW
if not a[3:]:
で ok
503デフォルトの名無しさん
垢版 |
2021/05/02(日) 23:59:52.42ID:Qiy/T2Qn
listを拡張して独自クラスを定義するのはどうか

class DefaultList(list):
__def __getitem__(self,i):
____if i<len(self):
______return super().__getitem__(i)
____else:
______return None

a=DefaultList([‘a’,’b’,’c’])
if not a[3]:
2021/05/03(月) 00:41:21.84ID:4Jcj15/I
>>502
スライス範囲を絞ってif not a[idx: idx + 1]とかにしたらより速くなりそう
505デフォルトの名無しさん
垢版 |
2021/05/03(月) 08:29:57.06ID:oY4C2yCE
いきなりStopIterationで止まるだけだから、長さ関係ないだろ。
普通にlenでいい。
JavaScriptやPHPのリスト"もどき"と比べるのもナンセンス。
506デフォルトの名無しさん
垢版 |
2021/05/03(月) 09:20:58.90ID:TDKc9ux4
環境はwindows10 64bitです

親フォルダ
:子フォルダA:画像1.画像2
:子フォルダB:画像1..

という構造があって,pathlibで生成した子フォルダのpathをiterdir()で回して
画像pathをPILのImage.openで読もうとしてるんですが
親か子のフォルダ名がめっちゃ長くなると
FileNotFoundError: [Errno 2] No such file or directoryになるやつが出たり出なかったりします
フォルダ名を短くして,画像名を最大まで長くした場合はエラーが出ません
何が原因で,どうすれば読めるようにできますか?
できればエラーキャッチしてその場で読めるようにしたい (フォルダ名のリネームはとりあえず置いておきたい)
2021/05/03(月) 09:25:40.83ID:YjR4A9Iz
>>506
フルパスが長すぎてpython内であふれてしまうのが原因
フルパスではなくショートパスを生成して、それでやりとりするようにすればとりま回避できるが
あまりに長いフルパスは非推奨なのでとりま置いておいたとしてもいつかは直せ
2021/05/03(月) 09:47:03.23ID:GN4IAf32
PythonじゃなくてWindowsのせい

多分これでしょう
Windowsはデフォで絶対パス260文字制限があるらしいから、解除したいならレジストリをいじる必要がある
https://bizlog.tech/windows-maxpath-change/
509デフォルトの名無しさん
垢版 |
2021/05/03(月) 09:59:34.50ID:YBya6Fwz
フォルダ名はわかるけど
ファイル名長いのが大丈夫なのはなんでだ?
510デフォルトの名無しさん
垢版 |
2021/05/03(月) 12:48:07.42ID:TDKc9ux4
>>507
なるほど
今回はpyinstaller使いたくて、そうするとwin32apiとの相性が悪いっつーかショートパスが危険球っぽいんで
もうロングパスは受け付けないことにします。ありがとうございました
2021/05/03(月) 12:52:29.86ID:YjR4A9Iz
>>509
それには一部対応してるんでねーの

>>510
pyInstallerはパスの途中に半角スペースや全角文字あってもうまくいかないことがあるぞ
2021/05/03(月) 18:53:48.47ID:YjR4A9Iz
>>510追記
ところで、相対パス/絶対パス/フルパス/短縮(ショート)パスの違いはわかってるんだよな???
513デフォルトの名無しさん
垢版 |
2021/05/03(月) 23:59:09.62ID:9/VcaNVK
その情報要る?
たぶん抜本的には裏で構造体を丸ごと短い名前でコピーして、それを処理して返すようにするとかいう話じゃね
514デフォルトの名無しさん
垢版 |
2021/05/04(火) 00:11:11.66ID:MueeR1Ae
まあショートネームは避けたい
そもそも超ロングパスがあり得る環境だとショートパス化できない文字列がぶち込まれそうだし
長いのはエラー吐くか
コピー→リネーム→処理→置き換え たい
2021/05/04(火) 00:59:43.45ID:Zkcb+r3V
Windowsの場合はPythonのインストールの最後に260文字制限を解除するか
聞かれたような気がする
516デフォルトの名無しさん
垢版 |
2021/05/04(火) 11:15:39.91ID:MTtoo9am
win上のpythonて32767文字扱えないのか
517デフォルトの名無しさん
垢版 |
2021/05/04(火) 12:20:24.62ID:g/PMv139
windowsのロングパスは
ファイル造ったあとに自分でそのファイルにアクセス出来ないとか
削除も出来ないとかあほなことに巻き込まれる

>>516
stringio
2021/05/04(火) 14:21:30.25ID:QySiaJ1m
以下のようなデータセットのリストがあり、例えば各nameごとに、valueが最大となるものだけ抽出したい場合に内包表記や関数などで簡単に書ける方法はありますか?
[
{'name': 'a', 'value': 100},
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 50},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]

↓こういうリストとして抽出したいです。
[
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
valueはタイムスタンプ等で最新のものだけ抽出する、といった使い方をしたいです。
2021/05/04(火) 14:46:49.13ID:7YaPXlVC
聞く限りだとfor name, value in data:とかで回して
out[name] = max(out[name], value)
みたいな感じで処理したら良さそうだけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況