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

レス数が950を超えています。1000を超えると書き込みができなくなります。
2021/10/01(金) 15:46:47.17ID:9qOHXj6D
当スレに★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 ###
898デフォルトの名無しさん
垢版 |
2021/12/03(金) 00:05:29.70ID:/aixTtEw
ビルトインのlist、dict使えってことなんじゃね?困ることあるん?
2021/12/03(金) 01:06:36.94ID:mlmp5wts
3.9から
list[int]
とか
dict[str, int]
とか書けるようになったから要らんだろってこと
この調子でイテレータもどうにかして欲しい
2021/12/03(金) 02:36:40.94ID:XIVj35HM
>>893
下と言う表現は、あいまい

下と言っても、子・直下のみは、> を使う

例えば、id がabc の直下の、xyz クラス
#abc > .xyz

(再帰的な)子孫なら、半角空白を使う

例えば、div の子孫の、p
div p

詳細は、jQuery などのCSS セレクター一覧表を参照
2021/12/03(金) 06:13:15.75ID:Lgq6hTbY
>>900
助かる
2021/12/03(金) 12:21:12.38
beautifulsoup4でfind_allするとき、table周りはなんか一癖あった記憶がある
2021/12/03(金) 13:26:46.51ID:Lgq6hTbY
selectでいいんだよね?
2021/12/05(日) 21:47:07.14ID:z1lQW/5A
はじめてプロファイラー使ってみたら
Pythonでファイルの存在確認って遅くないか?
じぶんの環境だけなのか?
2021/12/05(日) 21:58:46.62ID:z1lQW/5A
自己解決
ファイルの存在確認が遅いのはHDDのせいみたい
2度目以降は高速になった 
キャッシュが聞いてるからかと
2021/12/06(月) 00:07:26.37ID:Phmk8fSW
HDD関係なく初回のstatが遅いのはWindowsも含めUnix系のファイルシステムだとしょうがない
2021/12/06(月) 07:12:36.68ID:1pNPp5ri
コマンドプロンプトのような見た目のコンソール上で動く、CUIの特殊な計算機があります
C言語で書かれていてコンパイル済みのフリーソフトです
これをpythonで操作して自動化に役立てようと思っています

出力はコンソール上に文字列でなされるのですが、文字列を直接取得する方法はありますか?
2021/12/06(月) 08:19:00.70ID:0fxVnCQi
popen
2021/12/06(月) 08:58:45.68ID:1pNPp5ri
>>908
ありがとうございます
VSCODEで試してみてるんですが
引数にそのexeファイルだけ取って、runかpopenを使うと、どちらでもコンソールにCUIが直接表示されます
(そのままキー入力すると普通に動作します)

しかし引数にstdin=PIPE,stdout=PIPE,などを入れるとピクリとも動かなくなります(CUIが出ない、communicationやinputなどで入力を試みても出力がなく先に進まない、エラーも吐かない)

何か間違えたのだと思うのですが、
解説ブログやドキュメントを読んでも全く解決策がわからず困り果てています
何かご存知の方がいらしたらお願いします
2021/12/06(月) 09:06:19.91ID:1pNPp5ri
すみません、書き間違えました
runまたはpopenでexeファイルを開くと、
VScodeの画面上で、「ターミナル」にCUIが表示されます
そこにキー入力するとそのまま動作します。
2021/12/06(月) 10:11:30.79ID:+xtv5Wsa
expect相当がほしいならpexpectとか
標準モジュールだけで解決するのは面倒なのでPyPIで探すのが吉
2021/12/06(月) 12:38:40.47ID:+ZC47hZJ
>>909
問題を再現できるコードを提示するか切り分けするかしてもらわないと
Pythonのコードの書き方が悪いのかその計算機の呼び出し方が間違ってるのかわからない

1. 単純なpipeを使ったコマンドをpopenで動かしてstdout, stderrを取れてるかどうか?
$ echo "foo.txt" | grep -o ".t"
(echoやgrepはwindowsのコマンドで代用して)

2. 取れてるなら特殊な計算機はpipeを使ったコマンドで動くのか?
$ echo “1 + 2” | foo.exe

CUIと言ってるのがncursesのようなTUIだとSendKeysが必要かも
2021/12/06(月) 17:45:57.66ID:eUQmGuZl
visual studioでkeras/tensorflowのデバッグ方法でつまっています
K.sigmoid()やtf.boolean_mask()のようなバックエンド処理ばかりなのでデバッグ中に変数の中身が分かりません
今はとりあえずnumpyや独自実装で移植しながら中を見てデバッグしています
しかし問題にぶつかったとき原因が移植作業なのか元々のソースなのか切り分けができず困っています

keras.backendなどを使いながらも変数の中を見れるようにする方法ないでしょうか?
2021/12/06(月) 18:44:05.67ID:5Z6rXs0A
>>911
ありがとうございます。試してみます。

>>912
ありがとうございます。
1.は難しくて実行できませんでした。
2.について、送りたい入力を付けて実行してみたところ、cmdのコンソール上に求めるexeファイルの起動時初期状態の画面が現れて入力待ちになり(入力すると正常に動作する)、求める結果は得られませんでした。

TUI、対話型という言葉を知らなかったのですが、検索したところどうもそれらに該当するように思えます。
pexceptを使ってみようと思います。
2021/12/06(月) 20:25:32.94ID:ZoRh0Nkj
ターミナルでfor命令を1行で実行する場合、両サイドを[]で囲むじゃないですか
>>> [i for i in range(10)]
のように。この[]は、一般的になんて呼ばれていますか?
2021/12/06(月) 20:28:37.11ID:q0abD6Vl
内包表記 >>915
2021/12/06(月) 20:42:34.30ID:1jgDkimx
List comprehensions
918デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:38:34.79ID:fS/Lj56T
すいませんmaxについて教えて下さい。
ordered_list_xrp = [menber.get('price') for menber in open_orders_xrp]

このコードでリストを取得してこのようなリストがとれました、
['99.460', '104.150', '118.290', '123.800', '127.440', '130.990']

次にこのリストの中から最大値を取得しようとして、
このようなコードを実行したのですが、
max_price_list_xrp = float(max(ordered_list_xrp))

結果が、99.46になってしまいました、
最大値はリスト最後の、130.99のはずなのに、
どうしてうまく取れなかったのでしょうか?
2021/12/06(月) 23:42:47.24ID:1jgDkimx
>>> '99.460' < '130.990'
False
>>> 99.460 < 130.990
True
920デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:50:20.47ID:UpeudXBw
>>918
文字列だからだよ。
921デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:51:25.10ID:fS/Lj56T
>>919
>>920
ありがとうございます、
floatで数字にしたつもりだったのですが、
何か間違えてますか?
2021/12/06(月) 23:53:49.67ID:1jgDkimx
max(float(x) for x in ordered_list_xrp)
2021/12/06(月) 23:56:05.27ID:1jgDkimx
max(ordered_list_xrp, key=float)
924デフォルトの名無しさん
垢版 |
2021/12/06(月) 23:58:55.21ID:fS/Lj56T
>>922
うぉありがとうございます!
これでやってみたらちゃんと正しい最大値とれました、
文字列のリストにこんな罠あるの知りませんでした、
数字に変換するのすごい、感動しました!
2021/12/07(火) 01:52:20.23ID:904hja4x
pythonのselfについて教えてくだしあ
selfはインスタンス自身を表すってのはわかったんですが、
自分のクラスのメソッドの中でselfを関数として呼ぶと何が起こるんですか?
つまりこんな感じです

class Testclass:
 def __init__(self):
  pass

 def kansuu(self):
  self("hikisu") #←これ何してるんですか?
2021/12/07(火) 07:54:32.43ID:G7aiaFNj
dict((str(i),i) if i%2==0 else (i,str(i)) for i in range(10))

max(float(x) for x in ordered_list_xrp)

この2つってどういう順番で何が起きてんの?
927デフォルトの名無しさん
垢版 |
2021/12/07(火) 08:26:52.55ID:KRSgdo5l
>>925
self.__call__が実行される
2021/12/07(火) 13:28:56.27ID:mOcbYYmI
>>926
内包表記のとき、表記が感覚的に逆(慣れればそうでもないけど)に感じるが
一度理解すると簡単
https://colab.research.google.com/drive/199DCLDxHgvBc752ulWDueqC7cmt2iGbd
2021/12/07(火) 15:22:45.64ID:g74FV+wu
pythonは後出しだから慣れないな
python「ここにこれを代入して。ああ、もしもこの条件だったら代入するのはやっぱりこっちね。ああ、その代入はループでしてね」
ほかの言語「次の処理をループして。もしもこの条件だったら、ここにこれを代入、条件違ったらこっちを代入」
2021/12/07(火) 15:32:47.34ID:904hja4x
>>927
ありがとうございました!
931デフォルトの名無しさん
垢版 |
2021/12/07(火) 18:04:11.03ID:cqBSzh42
EmpathというA PIを用いてその結果の数値をリストにまとめシリアル通信でarduinoに送りたいです。
↓リストにまとめた以降
RGB = [round(red) , round(green) , round(blue) , energy , calm] 
print (RGB)

send_RGB = bytes(RGB)
print(send_RGB)

with serial.Serial('COM15' , 9600) as ser:
print('----')
ser.write(send_RGB)
print('----')
こんな感じでbyte型にできているのか(そもそもbyteにするか)わからないのですが
この数値をarduinoに取り込みたいので何か参考にさせてください。
受け取るarduino側が悪いのかもしれませんが。。
2021/12/07(火) 18:47:54.90ID:g74FV+wu
csvの文字列にした方がいいよ。簡単にやるならこんな感じ
送信側はcsv文字列で送信
受信側は1文字ずつメモリに貯め込んで改行コード検出で、そこまで貯まった文字列が数値と区切り文字だけで構成されてて区切り数が正しかったら正規なデータとして処理
受信側テストはターミナルソフトで手入力したcsv送って処理できたらおk
933デフォルトの名無しさん
垢版 |
2021/12/07(火) 19:57:20.96ID:1b+mdTOc
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/12(日) 02:21:30.33ID:neH/oCpw
Pythonで「オブジェクトが存在しなかったら作る」という処理を書きたいと思ってます
Pythonは3.6.9、OSはAlmaLinux8.5、IDEはVS.codeです

import class
if (objA is None):
  objA = class.classA('nameclassA')

とやってみたのですが、if文のところで name 'objA' is not defines となってしまいます

何かよい方法はありますか
2021/12/12(日) 02:28:54.11ID:LDYHaH+j
objA = None
と上のほうに書いておけ
2021/12/12(日) 02:58:35.01ID:neH/oCpw
>>935
回答どうもです

いただいた回答にて対応してみました
うまく動作しているようです

ありがとうございました
937デフォルトの名無しさん
垢版 |
2021/12/12(日) 03:00:27.68ID:lyarTocF
>>934
try: objA
except NameError:
objA = class.classA('nameclassA')
2021/12/12(日) 03:42:09.06ID:neH/oCpw
>>937
なるほど例外で対処する方法ですね
ありがとうございます
こちらでの対処も考えてみます
2021/12/12(日) 12:38:50.06ID:0NBntfzw
メタプログラミングするレベルでこんなのわからんのも変
十中八九設計がおかしい
2021/12/12(日) 14:44:59.69ID:qWcO2iK8
>>934
まあ正解は>>935だと思うが文字通り
> Pythonで「オブジェクトが存在しなかったら
と言うなら
if('objA' not in globals() and 'objA' not in locals()):
かな
2021/12/12(日) 16:17:39.25ID:GOu/cbbC
サーバー側のタイムゾーンはUTCという前提で、
それをフロントエンドで日本時間表示することになりました
しかしその表示に使うライブラリがawareを受け付けなくて
nativeでないといけないのです つまり
awareなUTC時間のdatetime型 → nativeなJST(Asian/Tokyo)時間のdatetime型
への変換をすることになったのですが
これを一発で変換するようなメソッドって
標準はもちろんpytzとかにも用意されてませんよね?
一度timestampに変換してtimedeltaにして演算
という認識で良いのでしょうか?
2021/12/12(日) 17:28:22.24ID:9VS1oyXL
失礼します
BeautifulSoupというライブラリを使って"任意のサイトのhtmlソースから特定の部分だけを抜き出して表示する"というプログラムを作りたいのですが、ググっても"URLの中の一部の文字列"のみを抽出する方法が分からないので教えて頂きたいです

具体的には、htmlソースからUA-XXXXXXX-Xという文字列を抜き出したい場合、
<p>UA-XXXXXXX-X</p> ←これならできるのですが

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXX-X";></script> ←この場合にUA-XXXXXXX-Xだけを抜き出す方法が分かりません
2021/12/12(日) 17:34:26.79ID:0NBntfzw
>>941
dt.replace(tzinfo=None) + dt.utcoffset()
力技なのはかわらず
2021/12/12(日) 17:35:49.84ID:a4cuZ/Mw
1. scriptエレメントを全部取得する
2. ↑で取得したscriptエレメントのsrcを読み取る
3. ↑で読み取ったsrcにua〜が含まれてるかチェックする
って流れで考えれば分かりやすいんじゃない?
2021/12/12(日) 17:42:52.14ID:I5fuTkfi
>>942
1:BeautifulSoupを使ってURL全体を取得する
2:urllib.parseを使って解析
3:今回の場合はquery部分で入ってくるので、それを取得する
https://docs.python.org/ja/3/library/urllib.parse.html

そのURLの形式で固定ならこれで行けるんじゃない?
https://ideone.com/yoHzOG
2021/12/12(日) 17:43:33.09ID:Hsntocf/
URLのクエリ文字列(クエリパラメータ)を取得。
2021/12/12(日) 20:30:44.55ID:9VS1oyXL
>>944,945,946
ご丁寧にありがとうございます。特に945さんに貼って頂いたコードは大変参考になりました。
お陰様で目的は達成できたのですが、他の余計な行も大量に表示されてしまいます。
邪魔な行を取り除くには下のコードに何を追加すればよいでしょうか?

b''
b''
b''
↑こんな感じで不要な行が残っています

・ソースコード
from bs4 import BeautifulSoup
from urllib.parse import urlparse
import requests

url = input("Enter a domain: ")
r = requests.get("http://"; +url)
data = r.text
soup = BeautifulSoup(data)
for link in soup.find_all('script'):
urls = link.get('src')
res = urlparse(urls)
print(res.query)
2021/12/12(日) 22:55:58.59ID:+1Oq/K+R
res.queryが存在するならprintするっていう風にすればいいんじゃね
2021/12/14(火) 11:59:17.10ID:s9Ba9CTM
PysimpleGUIについてちょっと聞きたいんですが、
sg.popup_get_fileを使いたいんですが、ファイルを選択せずキャンセルを行うと
『TclError: can't set "::tk::dialog::file::showHiddenBtn": parent namespace doesn't exist』
といったエラー文が出てしまうんですが、何が問題なのでしょうか

公式に載ってる↓のコードでもエラーが出るのでとっかかりすら掴めません・・・
import PySimpleGUI as sg
filename = sg.popup_get_file('処理したいファイルを入力してください')
sg.popup('入力した', filename)
2021/12/14(火) 20:49:18.01
import numpy as np
a1=np.array([1])
a2=[1]
print(type(a1[0]),type(a2[0]))
print(a1[0]==a2[0]) #@
d1={"n":a1[0]}
d2={"n":a2[0]}
print( json.dumps(d2) )
print( json.dumps(d1) ) #TypeError: Object of type int64 is not JSON serializable

#@がTrueになるのってpythonのバグではありませんか・・?
仕様であれば何かメリットとかあるのでしょうか?
2021/12/14(火) 21:04:19.38ID:70QYvgE2
a1[0]は(int32の)1でしょ?そしてa2[0]も(intの)1
int32とintぐらいの差でfalseになると色々困る
2021/12/14(火) 21:30:31.61ID:lu87KQQd
コード追ってはないけどnumpy側でそういう風に__eq__実装してるだけ
なんなら
>>> a1 == a2
array([ True])
になるしうれしいけど変だわな
2021/12/15(水) 11:10:32.17
>>951-952
なるほど
pandasもnumpy int64なので
dataframeを何かしらのAPIに投げるときに
そのままjson.dumps使えたらなぁと思いましたが
とりあえずはint32変換して成型した方がよさそうですねありやした
2021/12/17(金) 08:55:01.03ID:s+y1HFod
Windows、Linuxの両方で動作するスクリプトを作ろうと思っているのですが
スクリプトのファイルの改行コードについて、CR+LFがよいのかLFがよいのか
教えて下さい

#!/usr/bin/env python3
print("aaa")

こういうshebangが使われたスクリプトの場合なのですが、関連付けやbashのshellext等の
設定が無い環境では
・改行コードがLF
 →Windowsだと「python3 〇〇.py」で実行OK。ただし編集はエディタを選ぶ
 →Linuxだと「./〇〇.py」でも「python3 〇〇.py」でも実行OK
・改行コードがCR+LF
 →Windowsだと「python3 〇〇.py」で実行OK
 →Linuxだと「./〇〇.py」は「bad interpreter」となる。「python3 〇〇.py」では実行OK
…となりますよね

いずれのOSでも必ず「python3 〇〇.py」として実行できますし、
改行コードの問題はshebangの問題なので
・ファイルの改行コードはCR+LF
・Linuxでの実行は「python3 〇〇.py」で行う。shebangは書かない、使わない
こうするのが最も無難な方針に思えますが、いかがでしょうか
それともshebangも活用すべき、文字コードはLFとすべき、なのでしょうか
2021/12/17(金) 10:09:24.99ID:Ufm8xgDf
世の中のWinアプリ以外のソースはほぼLFだし
コーディング用途にLF扱えないエディタの出番はなくない?
それかハマりどころあるけどGit管理でautocrlf活用するか
2021/12/17(金) 11:03:16.89ID:AcAuqy7R
基本的はLFで揃えとくべき
それで困る状況がある場合だけautocrlfで対処
2021/12/17(金) 13:32:20.53ID:fkpshCq+
Windowsがメインだけど、シバンは使う、改行はLF
エディタ(NPP)でもアドオンつかって、保存時にLFで自動で保存(問い合わせ)できるようにしている
958デフォルトの名無しさん
垢版 |
2021/12/17(金) 16:27:15.20ID:6e8bb+xR
LF以外の選択肢考えたことなかったわ
2021/12/17(金) 17:25:27.22ID:tWB5K5S1
漏れは、WSL2, Ubuntu 18.04 で、
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使っているけど、
たぶん、CR + LF だとバグる

#!/usr/bin/env ruby

echo -e "$RBENV_ROOT\n$NODENV_ROOT"
/home/ユーザー名/.anyenv/envs/rbenv
/home/ユーザー名/.anyenv/envs/nodenv
2021/12/17(金) 23:25:03.55ID:87jtAeRP
>>958
os/9とかMac osがcrだよ
2021/12/17(金) 23:45:19.54ID:Ufm8xgDf
初心者スレにそんな現役じゃない例あげてなにがしたいん
2021/12/18(土) 00:15:24.44ID:mxS9DQCX
pandasで、1つの列のデータからapply()を使って複数の値を戻り値として返してそれぞれ別々の列として追加したいです。
(列データxに対して、x*2, x/2 を返す等)

DataFrameのapply()には、result_type='expand'で複数戻り値を別々の列(Series)に格納できるものがありますが、Seriesのapply()にはresult_typeがありませんでした。result_type='expand'のようなシンプルなやり方をするにはDataFrameのapply()を使うしか無いですか?
できればSeriesを指定した上でapplyを呼び出したいです。

ちなみに、呼び出した関数でpd.Seriesを戻り値として返すやり方もWebで見つかりましたがものすごく処理が遅かったので正しいやり方では無さそうです。
963デフォルトの名無しさん
垢版 |
2021/12/18(土) 00:37:48.68ID:mmV8s4af
applyを2回呼ぶのは?
2021/12/18(土) 01:52:04.79ID:mxS9DQCX
それが一番簡単ですが冗長な感じと思ったので…
でも、result_type='expand'も処理時間が遅いようなので、やはり複数回呼び出す方法にします。
2021/12/18(土) 02:01:17.24ID:iUN/Cy1s
df[‘B’], df[‘C’] = zip(*df['A'].apply(lambda x: ( x * 2, x / 2)))
2021/12/18(土) 02:09:06.48ID:iUN/Cy1s
df[[‘B’, ‘C’]]= df['A'].apply(lambda x: (x * 2, x / 2)).to_list()
2021/12/18(土) 23:23:56.96ID:rJsqD2PP
以下のようなファイル・ディレクトリ構成でツールを作ってます
mainscript.py
modules/
 __init__.py
 moduleA.py ← 実際のメイン処理
 moduleB.py ← 関数を別ファイル化

mainscript.pyの中でmoduleA.pyに書いた機能を使うので、mainscript.pyの中にて
from modules import moduleA
として読み込んでいます

ここで、moduleA.pyは、moduleB.pyに書いた機能を使ってます
この場合、moduleA.pyに
from modules import moduleB
と、「from modules import 〜」が無いと動作しないので、必要なのだと思ってます

しかしmoduleA.py、moduleB.pyを流用するとき、moduleA.pyは「from modules」を
流用先のディレクトリ構成にあわせて修正しなければならず、困ってます
また「modules」ディレクトリは、mainscript.pyから見てのものであり、
moduleA.pyに「from modules」文があると、moduleA.pyだけ見ていても
modulesディレクトリは親ディレクトリであることを読み取れず、それも困ってます

上記のような構成にしたとき、このような問題を解決する方法を教えてください
2021/12/18(土) 23:32:07.96ID:/Zq/GLbL
from . import moduleB
2021/12/18(土) 23:35:58.62ID:rJsqD2PP
>>968
回答ありがとうございます

moduleA.pyに相当するものが多数あるので全ての修正はこれからですが、
うまく動作しそうです

ありがとうございました
2021/12/19(日) 02:23:46.60ID:xFmqbcza
>>962
applyを使わないけど、
df['B'] = df['A'] *2
じゃダメ?
971デフォルトの名無しさん
垢版 |
2021/12/20(月) 11:22:53.74ID:sxGOmJ2J
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/23(木) 16:13:24.40ID:UaimnPqj
beautifulsoupで取得したページでth:-soup-containsというセレクターを使うと
NotImplementedError: ':-soup-contains' pseudo-class is not implemented at this time.
と出ます。

この原因は何でしょうか?必要な情報があれば載せます
2021/12/23(木) 17:45:26.84ID:QOBvhpdm
beautifulsoupの最新版インストールしてるか確認しろ
974デフォルトの名無しさん
垢版 |
2021/12/23(木) 22:05:30.20ID:Gg61L1jf
streamlinkってpythonで書かれてるんだよね。
python的な書き方ってないの?
subprocess使って
subprocess.call(['streamlink', url, 'best', '--hls-duration', time, '-o', out2])
ってやってるんだけど、python的な書き方は無いのかなって思って。
2021/12/23(木) 22:24:09.67ID:zCNeJPRa
https://streamlink.github.io/api_guide.html
こういうこと?
976デフォルトの名無しさん
垢版 |
2021/12/23(木) 22:40:50.88ID:Gg61L1jf
>975
このページ、白バックに白文字になってるところが多くて読みづらいですね。
fd = stream.open()
data = fd.read( 00:30:00)
fd.output(filename)
みたいな書き方できないのかなって。
977デフォルトの名無しさん
垢版 |
2021/12/23(木) 22:49:03.00ID:Gg61L1jf
read()でbyteじゃなて時間で指定したいし、readしたdataをoutputする方法が知りたいんです。
codec は copy で、生のまま ts とか mp4 にoutputしたい。
スクリプトのサンプル探してるんだけど、みんな ffmpeg に渡したり、subprocess 使ってる。
2021/12/23(木) 23:04:17.60ID:zCNeJPRa
取得後は単なるデータ列としてか扱えないぽいから
https://streamlink.github.io/api.html#streamlink.stream.HLSStream
コマンドライン同様どう取得するかを指定できるだけであまりうれしくなかった。
それでいいならI/Oとしては扱える。

MPEGコンテナ操作するプログラムを別途書けば加工もできるけど
どこまで制御したいかによる。
979デフォルトの名無しさん
垢版 |
2021/12/23(木) 23:19:13.76ID:Gg61L1jf
取得したデータをffmpeg-pythonに渡してoutするしかないんですかね。
2021/12/24(金) 06:23:53.37ID:7mLGjij2
Visual Studio Code で python 3.9を使用していたのですが
python 3.10にアップデートしました
match文を使ってみたところ、インデントのエラーが表示されます
実行はできます
Visual Studio Codeで何か設定したりしなければいけないのでしょうか?
2021/12/24(金) 13:23:38.00ID:w5aKK4fu
pylintが3.10に対応してないバージョンなのでは
2021/12/24(金) 17:30:33.82ID:7mLGjij2
>>981
Python Language Server を jedi から pylance に変えたらエラーがでなくなりました
正しい対応かわかりませんが、しばらくこの設定でやってみます
983デフォルトの名無しさん
垢版 |
2021/12/25(土) 14:28:37.83ID:O1DganTQ
vscは基本pylanceでええょ
984デフォルトの名無しさん
垢版 |
2021/12/25(土) 15:00:20.62ID:f1xUz6ll
Pythonの拡張のデフォルトランゲージサーバーってpylanceにじゃなかった?
まだデフォルトになってないっけ
2021/12/25(土) 18:39:11.66ID:wLd1kjlZ
Jediに設定したことがあったらそっちが使われるからな
俺は今でもJediを使ってる
Pylanceだと、Python 2/3の互換性を維持しようとすると、
もう片方のインポートエラーとかが鬱陶しいんだよ
まぁ、黙らせる設定でもいいんだけど、Jediのほうが手っ取り早いので
2021/12/25(土) 23:26:55.99ID:4wn3W7Lt
10桁以上のint値を扱うと、自動で数字変換されてしまうのですが、どういう原理になってんでしょうか?
6631510311なら-1978424486に変換

ライブラリはNumpyとPandas
2021/12/26(日) 01:16:59.54ID:bjcghV5B
32ビットintだと21億までしか表現できないから適当な数(ルールはあるが面倒だからここでは触れない)に置き換えられてる
64ビットintにすれば置き換えされない
988986
垢版 |
2021/12/26(日) 11:08:42.45ID:+UpYRQsi
解決しました。有難う
intにもビット指定があったんすね
2021/12/26(日) 13:37:12.67ID:0SXvw2xa
>>972これなんですけど>>973をやって最新にしても駄目でした。
beautifulsoupは難しいですね
困った
2021/12/26(日) 15:33:50.15ID:ipgF0889
不等号を反転させ、逆の結果を得たいと思いました
a,bはint型ですが3や5には特に意味はありません
b>a(例 5>3)がTrueとなるような値を取ります
f=-1でその逆の結果になるのを想定しています

a=3
b=5
def hoge(f=1):
_if f*(b-a)>0:
__print("o")
_else:
__print("x")
hoge()
hoge(-1)

これでいいでしょうか?
例外があったり、こういうことをする場合の標準関数とかすでにあるのかなと思い質問しました
2021/12/26(日) 15:46:31.51ID:0SXvw2xa
>>989
これ解決しました
soupsieveというのをアップデートしたら使えました
キツイ
2021/12/26(日) 15:52:21.23ID:YaEmqJRZ
関数にするんだったらdef hoge(a,b)みたいにしたほうが分かりやすいと思う
符号を1、-1、0で返してくれるnumpy.sign()ってのもある
2021/12/26(日) 17:08:09.42ID:JuKsRG7c
すみません。ソースコードのディレクトリ、ファイル構成については以下を参照しているのですが、正しい情報でしょうか?
ttps://rinatz.github.io/python-book/ch04-07-project-structures/
また、上記ではライブラリとアプリケーションの区別が出来ない構成であることが問題とされています。
ライブラリを作成後、それをアプリケーションで使いたい場合、アプリケーションのソースコードの構成はどのようにするのが、定跡なのでしょうか?

よろしくお願いいたします。
2021/12/26(日) 17:26:46.11ID:v3hzgqs8
https://python-guideja.readthedocs.io/ja/latest/writing/structure.html
2021/12/26(日) 17:38:40.82ID:JuKsRG7c
>>994
ありがとうございます。非常に参考になりそうです。
早速、勉強させていただきます。
2021/12/26(日) 17:54:42.34ID:JuKsRG7c
>>994
すみません。教えていただいた情報も基本的にパッケージに関する構成についての説明のようです。
パッケージを自作することは出来そうですが、それを呼び出すアプリ側をどうすればいいのかはよくわかりませんでした。
2021/12/26(日) 22:23:52.52ID:bjcghV5B
993のgithubの文章はアプリケーションとライブラリと両方の側面を持つプロジェクトの話をしてるけど、あなたのプロジェクトもそうなの?
そうなら文章の一番下に書いてある構成を取ればいい
そうじゃなくて他のプロジェクトからこのプロジェクトをパッケージとして参照したいということなら、それはsys.pathsの話であってプロジェクト構成はあまり関係ない
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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