X



くだすれPython(超初心者用) その39

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/08/24(金) 07:50:35.97ID:VD4/++xS
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その38
https://mevius.5ch.net/test/read.cgi/tech/1526522954/
0578デフォルトの名無しさん
垢版 |
2018/10/25(木) 20:58:23.32ID:NT+vxu3F
無駄なあがきだと思うよ
import sys
if sys.version_info >= (3, 0):
def xopen(file, encoding):
return open(file, encoding=encoding)
else:
import codecs
def xopen(file, encoding):
return codecs.open(file, encoding=encoding)
0579デフォルトの名無しさん
垢版 |
2018/10/25(木) 23:07:28.40ID:ZUq2YpeN
確かに文字列関係は労力が見合わないな
0580デフォルトの名無しさん
垢版 |
2018/10/26(金) 01:52:17.86ID:etilwalQ
>>578
ありがとうございます
いい感じに動いてるっぽいです
ちなみになんですが、
def xopen(file, encoding):
return open(file, encoding=encoding)
xopenという新たに定義した関数のencodingっていうパラメータが、open関数に渡る際に、encoding=encodingとなった右側のみに代入されるのがいまいち何故か分かりません
0581532
垢版 |
2018/10/26(金) 10:52:40.48ID:99OxERMj
>>537
遅レスで会話の邪魔して悪いんですが。英語で質問するだけの勇気がありません・・・
pyGTKでgtk.gestureはそもそも文献自体がほとんど(2019/1に洋書が出るようですが)ないので、
とりあえず今はwebkit1を使って凌ごうともいます。
0582デフォルトの名無しさん
垢版 |
2018/10/26(金) 11:27:23.79ID:+/5bIPXr
いまスクレイピングの勉強してて、テキスト通りに入力したら
operation not permittedとエラーが出ました
python3.6
IPad Proでpythonista使ってます
写真がその内容です
https://imgur.com/a/DNU9qUA
0584デフォルトの名無しさん
垢版 |
2018/10/26(金) 12:46:11.07ID:xBIHPZW8
>>571
そういうマルチバージョン対応などは、10年以上の開発者がやるもの!
初心者がやるべき事ではない

初心者は、python3系だけを使ってください
0585デフォルトの名無しさん
垢版 |
2018/10/26(金) 13:22:34.36ID:mc9Lb34M
>>584
アホは出てくんな
0586デフォルトの名無しさん
垢版 |
2018/10/26(金) 13:32:28.45ID:kt4cO7LW
>>583
クリップボードの内容を取得したりOSと連携する様な操作は
iPadだと出来ることと出来ないことがあるよ
クリップボードの内容取得は出来るけど
iOS用に書き換えないと

import clipboard
text = clipboard.get()
print(text)

Pythonista のドキュメントに以下の項目があって
iOS 用に使えるモジュールが出てる
Pythonista Modules
Additional modules developed specifically for iOS
0587デフォルトの名無しさん
垢版 |
2018/10/26(金) 13:40:57.57ID:pU3zjhOE
pipでuinstallした時に
would remove:
proceed?(y/n)
と聞かれて、yを選ぶと
fikenotfounderrorが出てアンインストール出来ません
どうしたらよいですか?
0591デフォルトの名無しさん
垢版 |
2018/10/26(金) 15:07:19.64ID:1xxQ31UG
>>589-590
・ないといわれたファイルは実際に(ほんとうに)あるのか、ないのかをexplorerあたりから確認しる
・テンソルフローはうまくうごいていたのか、いないのか
・ログインユーザー名に日本語(2バイト文字)を使ってないか?
0594デフォルトの名無しさん
垢版 |
2018/10/26(金) 17:48:07.64ID:OsF5A133
>>586
ありがとうございます
やっぱり初心者にpythonistaは厳しいのかなー
iPadで出来ていろいろ便利なんですけどね……。
0597デフォルトの名無しさん
垢版 |
2018/10/27(土) 00:41:13.73ID:QkHwtfgJ
スレチ
0598デフォルトの名無しさん
垢版 |
2018/10/27(土) 17:49:12.10ID:ZlRq8doU
HTML, CSS, JavaScript, jQuery などの事は、web制作管理板で聞いてください
0599デフォルトの名無しさん
垢版 |
2018/10/27(土) 17:49:31.22ID:M4OQ4nwj
python3で
print("humi" , humi, "%") を実行すると ('temp', 23.0, 'c') ←23は実際のセンサーの値です。
print関数で””で囲んだのは文字扱いで、複数の文字のときは「,」で区切りますよね?
理想は humi 47.0 %  と表示させたいのですがどうすればよいでしょうか?
初歩の質問なのですが悩んでおります
0601デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:16:13.96ID:M4OQ4nwj
>>600
すまんが 俺もいままではそれでできてた。
今回はそれを入力すると ('temp', 23.0, 'c') って出るんです
そもそもなんで「'」になってるのかすら分からない。
0602デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:19:52.16ID:M4OQ4nwj
すまんごちゃごちゃになってますね。
print("humi" , humi, "%") →('humi', 23.0, '%') になります。
普通なら>>600で大丈夫なはずなんですけど。。
0603デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:26:42.99ID:d3ZViLoJ
それはpython2の挙動だな
0604デフォルトの名無しさん
垢版 |
2018/10/27(土) 18:40:14.43ID:M4OQ4nwj
>>603
ん?そんな急に変わるもんなの?
実行もsudo pythonで実行してるけど sudo python3にできたりするのですか?
0607デフォルトの名無しさん
垢版 |
2018/10/27(土) 19:42:26.23ID:M4OQ4nwj
>>605
それは存じてます。
それより下にあるprint関数はpython3の書き方でしっかり表示できてるんですよね。。
なぜかこの行だけ変な表示になる
0608デフォルトの名無しさん
垢版 |
2018/10/27(土) 19:56:03.40ID:tpZx8Nmf
まだ2系使ってるのはどんな層?
0609デフォルトの名無しさん
垢版 |
2018/10/27(土) 20:38:05.02ID:p3Z91K38
Linux系じゃね?
ブートストラップ周りに2系がガッツリ食い込んでるって聞いたことある。
そのせいで2系がデフォルトで入ってるとか。
0611デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:09:16.81ID:d3ZViLoJ
humi = 25
print("humi" , humi, "%")
print(humi)

出力:
('humi', 25, '%')
25
0612デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:26:03.77ID:M4OQ4nwj
>>611
まさにこれ。
python2はないと思う。ずっとこれでやってきてるので。
部分的に2とかありえるのかな?
0613デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:28:08.36ID:d3ZViLoJ
>>611はpython2で動かした結果
0614デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:39:51.74ID:M4OQ4nwj
>>613
まじですか・・
当方ラズパイをつかってまして lxterminalで sudo python ファイル名 なら実行できるけど
python3 IDLEつかうとモジュールエラー出るから避けてたんだけど もしかしてpython3じゃないってことですかね?
0615デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:41:02.12ID:GbJLfo15
ちゃんと調べたら2系で動いてましたテヘペロ
に1票
これまでずっとそうしてきたからとか本当に信用ならん
0617デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:53:58.98ID:WN5vicFY
RHEL系もDebian系もシステム周りはここしばらくはpython -> python2で、3はpython3で呼ぶようになってる
0618デフォルトの名無しさん
垢版 |
2018/10/27(土) 21:57:57.20ID:M4OQ4nwj
>>615
確認しました。ほんとにそれでしたすいません。
pip3でインストールしなきゃいけなかったそうです
どうもありがとうございました
0620デフォルトの名無しさん
垢版 |
2018/10/28(日) 07:05:43.19ID:7IwsJv31
自分ではどうしようもなくて他人に泣きついたのにどうしてその相手の言うことを聞かずにグダグダやってたんだ?
0621デフォルトの名無しさん
垢版 |
2018/10/28(日) 07:43:54.72ID:lVhl2H66
Pythonで作成したモジュールをUWSCで呼び出すことはできますか?
UWSCではDLLを読み込んで関数が使えるのですが
そういう行為をプログラミング用語でなんというのでしょうか
検索ワードがよくないのか手がかりすら掴めてないです
よろしくお願いします
0622デフォルトの名無しさん
垢版 |
2018/10/28(日) 07:57:38.17ID:JDWqlC9k
>>621
uwscなんて初めて知ったけど、exec()というコマンドがあるそうだから、単純に
exec("pythonのパス" + "pythonスクリプトのパス")でいいんじゃないの?
0624デフォルトの名無しさん
垢版 |
2018/10/28(日) 12:12:29.72ID:YiTUMI+K
>>623
それで十分だろ。
思い込みは捨てて
exec("<python.exeのフルパス> <スクリプトのフルパス>")
を実行してみなよ。
discmdのほうも単にパスが通ってないだけだと思うよ。
フルパスで入力してる?
0626デフォルトの名無しさん
垢版 |
2018/10/28(日) 13:08:03.94ID:auhqQrbO
Fswebcamで撮影した写真をメールで自動送信を考えています。
探知して送るのはあるんですけど、撮影した写真をまとめて送るようなプログラムってつくりにくいですか?
シェルだと楽っぽいけど 慣れてないので分からない。。
0627デフォルトの名無しさん
垢版 |
2018/10/28(日) 13:30:49.38ID:auhqQrbO
もしくは撮影されたフォルダ内から日時の新しいものとか新しいうちの四つを添付するとかできないかなと?
普通に添付するならファイルが指定になるから難しそうですかね。。
0629デフォルトの名無しさん
垢版 |
2018/10/28(日) 23:28:27.44ID:fiBcuTbE
numpyで配列の要素が範囲となるような配列をつくることはできますか?
例えばAというはいれつがあって、
A[0] = np.arange(0,1,0.01)
みたいなものです
0630デフォルトの名無しさん
垢版 |
2018/10/29(月) 00:31:07.47ID:tXMYusEl
意図があってるか分からないが
A = np.stack([np.arange(0,1,0.01)]*10)
A += np.arange(10).reshape((10,1))
0634デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:12:02.14ID:wR2M4wFA
requestsでファイルをダウンロードする時タイムスタンプは変更しないでダウンロードする方法教えて下さい!!
0635デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:28:06.05ID:VxCr7qKV
os.utime
0636デフォルトの名無しさん
垢版 |
2018/10/29(月) 11:56:15.99ID:wR2M4wFA
requestsで何らかの方法を使ってファイルの作成日などを取得してダウンロード後にos.utimeでその日付に書き換えるんでしょうか?
0639デフォルトの名無しさん
垢版 |
2018/10/29(月) 12:51:46.14ID:VtmwN/uo
wget -N url も utime やろ
0640493
垢版 |
2018/10/29(月) 17:45:54.93ID:k7vAtK/H
ちょっと前にwebkitgtk epubミューアの件で質問した者ですが、コードを見ていて疑問に思っていたことがあるので
質問させてください。
main_window.py

self.viewer = viewer.Viewer(self)
print("Displaying blank page.")
self.viewer.load_uri("about:blank") # Display a blank page
self.viewer.connect("load-finished", self.__ajust_scroll_position)
self.viewer.connect("load-finished", self.__save_new_position)
self.right_box.pack_end(self.right_scrollable_window, True, True, 0)
# Create Chapters List component and pack it on the left
self.chapters_list_component = chapters_list.ChaptersListComponent(self)

(途中省略)

def __save_new_position(self, wiget, data):
"""
Saves new position in case new load came from link based navigation
:param wiget:
:param data:
"""
if not data.get_uri() == "about:blank":
self.content_provider.set_data_from_uri(data.get_uri())

load-finishedの時に呼ばれているコールバック関数なんですが、wigetとdataって何なんですか?
なんでdata.get_uri()と書けるんでしょうか?
それと、このコールバック関数配置ページ読み込むごとに呼ばれているという認識で正しいのでしょうか?

あと、 content_provider.py
if urllib.parse.unquote((os.path.split(uri)[-1]).split("#")[0]) == os.path.split(self.chapter_links[i])[-1]:
ってどうして必要なんでしょうか?(これがないと機能しないようですが)
0643デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:12:16.70ID:ItEstrK2
>>642
写真だと見づらいね
find_allの時はリストで取得してるから
for c in content: で回して取り出してみて
0644デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:35:48.17ID:RJcKPmzk
c.attrs['content']
0645デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:38:50.81ID:5LhWTx/7
pandasのtocsv使うときデータ内に¥nが入っててcsv出力時点で改行され、excelからcsvをデータインポートカンマ区切りで読み込みたい時に改行されて悲しいことになるんですがどうするのがスマートですか
¥n入るのは正しく、16桁以上の数字のカラムがあるのでデータインポートで読み込みたいです
0646デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:49:52.26ID:dTGmjkHB
本当だ
よく見るとこの場合は実行するとリストとして取得されてるんですね
そりゃstringじゃ無理な訳ですね
わかりやすい
0649デフォルトの名無しさん
垢版 |
2018/10/29(月) 19:21:40.44ID:TEtmhpeX
>>645
to_csvのオプションで個々の値にクォーテーションを付ける
import csv
df.to_csv(“hoge.csv”, quoting=csv.QUOTE_ALL)
0650デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:46:01.91ID:b4sCrQ/m
>>640
そんな零細プログラムの詳細をここで質問しても誰も答えないと思うぞ…

気が向いたから答えるけど次はないからな。

__save_new_position()メソッドを呼びだしているのはwebviewクラス。
下記ページによると、第二引数はwebview自身、第三引数はwebframeクラスのインスタンスを渡して呼び出されることが分かる。
webframeのリファレンスページを見ればwebframeクラスがget_uri()メソッドを持っていることも分かる。
https://lazka.github.io/pgi-docs/WebKit-3.0/classes/WebView.html#WebKit.WebView.signals.load_finished

content_providerのほうは、指定されたxmlファイルが、chapter_links配列の何番目のファイル名と一致しているかを調べることで、チャプター番号を特定している。
uriがエスケープされていたり"#"フラグメントがついてると比較できないから取り除いている。
0651デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:54:17.26ID:g2+WGN4L
>>647
一般的にHTTPレスポンスヘッダのLast-Modifiedにファイルのmtimeが入ってるからそれを取得して、ファイル書き出してからmtime更新すれば良い

curl使えるなら-vで一度レスポンスヘッダ見るといい
0652デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:58:45.40ID:Uyob8jIm
凄いねよく答えられるな、流石

gtkは全く知らないけど
wigetはwidgetのスペルミスだろうね、きっと
0653デフォルトの名無しさん
垢版 |
2018/10/30(火) 06:58:19.30ID:wwkQj2Ri
>>651
これであってますか?

resp = requests.get(url)

# レスポンスヘッダの Last-Modified を取得
last_modified = resp.headers['Last-Modified']
print(ast_modified)
Thu, 13 Oct 2016 05:36:56 GMT

# datetime オブジェクトに変換 (表記のロケール依存を防ぐために dateutil.parser を使う)
last_modified = dateutil.parser.parse(last_modified)
print(ast_modified)
2016-10-13 05:36:56+00:00

# unix time に変えるために calendar を使う
unixtime = calendar.timegm(lastModified.utctimetuple())
print(unixtime)
1476337016

# ファイルの書き込み
img_file = open(file_path, 'wb')
img_file.write(resp.content)
img_file.close()
os.utime(file_path, (unixtime, unixtime)) # ファイルパス, (アクセス時間, 修正時間)


ファイルの作成日の取得と書き込みはどうやるんでしょうか?
0655640
垢版 |
2018/10/30(火) 08:47:23.62ID:/tw9qCHj
>>650
レスありがとうございます。助かりました。
0656デフォルトの名無しさん
垢版 |
2018/10/30(火) 09:35:33.18ID:/tw9qCHj
次はないと言割れましたがちょっと不思議なことがあったので質問させていただきます。
sorted関数を使うと、
パブリックドメインのepubで有名なgutenbergのファイル名をソートしていたのですが、
(@public@vhost@g@gutenberg@html@files@31278@31278-h@31278-h-0.htm.htm、@public@vhost@g@gutenberg@html@files@31278@31278-h@31278-h-10.htm.htmllなどというファイル名です)
0. 1.10, 11,12, .2などとソートされるようですが、普通に0,1,2,3,4の順番にできないのでしょうか。
というよりなぜグーテンベルクのファイルだけ、おかしなソートになるのかわかりません。
0657デフォルトの名無しさん
垢版 |
2018/10/30(火) 09:48:16.33ID:JqsKq037
数値型は数の大小で比較されるが、
文字列型の数値は文字列として比較されるから数の大小順には並ばない
数値として比較したければ、sort(またはsorted)のkey引数に適切なキー抽出関数を与える必要がある

その本だけがと言っているが、条件を満たしていればどんなリストでもお前の言う「おかしなソート」になる
print(sorted('11', '2', '.1'))
0658656
垢版 |
2018/10/30(火) 10:00:46.78ID:/tw9qCHj
>>657
ググったらでてきました。文字列型だと10が2より先に来るようですね。
どうもありがとうございました。
0659デフォルトの名無しさん
垢版 |
2018/10/30(火) 12:37:59.64ID:BBRqRtLN
>>653
そんな感じ
ファイルの作成日時は取得する手段がないので諦めて
(独自ヘッダで応答してくれるサーバーを除く)
0660デフォルトの名無しさん
垢版 |
2018/10/30(火) 12:44:20.01ID:QArnhM9r
>>649
試してみたけど無理でした
ダブルクリックで開くと問題ないけどtxtのインポートだと開いた時点で改行されるからどうしようも無いのかなこれ
0661デフォルトの名無しさん
垢版 |
2018/10/30(火) 14:52:54.90ID:mxVOiKCI
bashからpythonプログラムを実行するときに、pycharmで簡単にデバッグしたいんですが、どうすればいいですか?
pythonコードだけの場合のやり方は分かるんですけど
print()いっぱい書くしか無いんですかね
0662デフォルトの名無しさん
垢版 |
2018/10/30(火) 14:55:07.36ID:mxVOiKCI
>>658
float型に変換しないとちゃんとソートできないよ
0665653
垢版 |
2018/10/30(火) 15:46:23.76ID:74FRV+Zp
>>659
どうもありがとうございます
基本的に作成日の取得は出来ないんですね
0666653
垢版 |
2018/10/30(火) 16:13:18.69ID:74FRV+Zp
try:
f = open(local_path, 'rb')
dbx.files_upload(f.read(), upload_path)
f.close()
except dropbox.exceptions.ApiError:
print(dropbox.exceptions.ApiError.error)

Dropboxにアップロードする時、エラーが出た時はプリントするように例外を出したいんですが、
これだと、
AttributeError: type object 'ApiError' has no attribute 'error'
ってエラーが出てしまいます。


try:
f = open(local_path, 'rb')
dbx.files_upload(f.read(), upload_path)
f.close()
except dropbox.exceptions.ApiError as err:
print(err.error)

これだと、エラーがちゃんとプリントされます
なぜ、 as err を付けるとちゃんと動くんでしょうか? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0667デフォルトの名無しさん
垢版 |
2018/10/30(火) 16:47:54.22ID:mxVOiKCI
pycharmでrun/debug configurationのset wowrking directoryに、プログラムを実行したいディレクトリ(pロジェクトのルート外)を入れても、ファイルが見つからないとエラーがでます
ターミナルでは実行可能です
プロジェクトのルート外のディレクトリで実行するにはどうすればいいいか教えて頂きたいです
0668デフォルトの名無しさん
垢版 |
2018/10/30(火) 17:27:16.66ID:o9t78hsF
>>667
ちょっと何言ってんだかわかんない。
working directoryは実行するpyhonスクリプトのディレクトリが勝手に入ると思うのだが。
見つからないと言われるファイルは何?
実行するスクリプトから参照しているファイルじゃないの?
図示してくれ。
0669デフォルトの名無しさん
垢版 |
2018/10/30(火) 18:23:15.32ID:LRpQBEf3
>>666
前者はクラス名.変数名(ApiError.error)になっているのでクラス変数を参照しようとしている。
故にApiErrorにerrorという名前のクラス変数がなければエラーになる。

後者はインスタンス名.変数名(err.error)になっているのでインスタンス変数を参照しようとしている。
errorはインスタンス変数なのでエラーにならない。
0670653
垢版 |
2018/10/30(火) 18:43:42.81ID:wwkQj2Ri
>>669
どうもありがとうございます
dropbox.exceptions.ApiError as err
これって、
dropbox.exceptions.ApiError
をerrって別名にしただけですよね?

ってことは
err.errorと
dropbox.exceptions.ApiError.error
は結局同じ気がするんですが、違うんでしょうか?
違いがわからないです
0671デフォルトの名無しさん
垢版 |
2018/10/30(火) 19:22:58.06ID:LRpQBEf3
>>670
違うよ。
ApiErrorはクラス名、errはインスタンス名。
a = MyClass()
って書いたときにMyClassとaは違うものでしょ?それと同じ
0672デフォルトの名無しさん
垢版 |
2018/10/30(火) 19:39:22.54ID:vHVA3ezu
except E as N:
と書いてある場合は
"Eが例外オブジェクトのクラスだったら例外をNに代入"
という処理になる
他のasを使った文のようにEの別名をNにする訳ではない
0674デフォルトの名無しさん
垢版 |
2018/10/31(水) 00:55:47.26ID:KgeV0wH8
ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.

sklearnでLinearSVCのグリッドサーチするとこの文章が永遠に出てくるんですけどどういうことですか?調べてもわかりませんでした。
0675デフォルトの名無しさん
垢版 |
2018/10/31(水) 01:29:09.72ID:C97UeufF
そのままの意味で、毎回の学習が収束まで行ってないからイテレーション回数増やせって事では
■ このスレッドは過去ログ倉庫に格納されています

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