★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨
◆エラーを解決したいときはエラー表示(勝手に省略禁止)と
環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書く
◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので
↓にあげてるような、ソースコードうp用サイトに貼ってきてくだしあ
(スクリーンショットをimgur等にうpる「横着」禁止)
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう。
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)
◇Pythonオフィシャルサイト
http://www.python.org/
◇まとめwiki
ttp://python.rdy.jp/
●関連スレ●
くだすれPython(超初心者用) その44【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1563969768/
〇前スレ
Pythonのお勉強 Part61
https://mevius.5ch.net/test/read.cgi/tech/1563622784/
次スレの建立は>>985が挑戦する。
Pythonのお勉強 Part62
1デフォルトの名無しさん
2019/09/16(月) 15:41:11.74ID:OCMqZYFH152デフォルトの名無しさん
2020/04/30(木) 23:25:29.06ID:zLT/BN3l コロナ騒ぎあおってる連中がやりたいのって
結局これだよなあ
結局これだよなあ
153デフォルトの名無しさん
2020/04/30(木) 23:37:16.70ID:GAsejKiL python foo.py
python foo.py -s
python foo.py -s 10
を区別したいんだけどどうすれば良いの?
>cat foo.py
import argparse
p = argparse.ArgumentParser()
p.add_argument('-s', nargs='?')
args = p.parse_args()
print(args.s)
>python foo.py
None
>python foo.py -s
None
>python foo.py -s 10
10
これじゃ-sの有無が判らん
python foo.py -s
python foo.py -s 10
を区別したいんだけどどうすれば良いの?
>cat foo.py
import argparse
p = argparse.ArgumentParser()
p.add_argument('-s', nargs='?')
args = p.parse_args()
print(args.s)
>python foo.py
None
>python foo.py -s
None
>python foo.py -s 10
10
これじゃ-sの有無が判らん
154デフォルトの名無しさん
2020/05/01(金) 00:14:53.03ID:eLVhgQ4h -s のアクションが不明
155デフォルトの名無しさん
2020/05/01(金) 01:57:54.00ID:gkl90wa7 if "s" in args:とかじゃだめなん?
156デフォルトの名無しさん
2020/05/01(金) 08:18:55.56ID:gHLn0qVE default=-1とかつければいい。
157デフォルトの名無しさん
2020/05/01(金) 09:17:19.44ID:k2YlXFh6158デフォルトの名無しさん
2020/05/01(金) 09:28:27.73ID:xXuuls7c159デフォルトの名無しさん
2020/05/01(金) 10:50:01.22ID:MCEzZFz/ Ruby のオプションパーサーみたいなやつだろ
ruby script.rb -h a -s 10
と入力すると、
require 'optparse'
opts = { }
ARGV.options do |o|
o.on( "-s 引数", "引数" ) { |x| opts[ :s ] = x }
o.on( "-h 引数", "引数" ) { |x| opts[ :h ] = x }
o.parse!
end
p opts #=> {:h=>"a", :s=>"10"}
ruby script.rb -h a -s 10
と入力すると、
require 'optparse'
opts = { }
ARGV.options do |o|
o.on( "-s 引数", "引数" ) { |x| opts[ :s ] = x }
o.on( "-h 引数", "引数" ) { |x| opts[ :h ] = x }
o.parse!
end
p opts #=> {:h=>"a", :s=>"10"}
160159
2020/05/01(金) 10:57:21.41ID:MCEzZFz/ >>159
の続き
ruby script.rb -h a -s
missing argument: -s
{:h=>"a"}
ruby script.rb -s -h a
{:s=>"-h"}
これは間違えて、次のオプション・-h を引数と勘違いしているw
の続き
ruby script.rb -h a -s
missing argument: -s
{:h=>"a"}
ruby script.rb -s -h a
{:s=>"-h"}
これは間違えて、次のオプション・-h を引数と勘違いしているw
161デフォルトの名無しさん
2020/05/01(金) 14:24:58.96ID:gkl90wa7 >>160
お前生きてて楽しい?
お前生きてて楽しい?
162デフォルトの名無しさん
2020/05/01(金) 17:19:05.23ID:oZ5QHjAY そもそも、"-s"と"10"が何を意味しているかわからないし、
何をしたいのかもわからない。
特に後者は、全体の引数とも、"-s"の値ともとれるわけだし。
>>158
"-s"のほうで、actionを指定すればできるよ
何をしたいのかもわからない。
特に後者は、全体の引数とも、"-s"の値ともとれるわけだし。
>>158
"-s"のほうで、actionを指定すればできるよ
163デフォルトの名無しさん
2020/05/05(火) 12:44:32.20ID:lrlqOn2p フォルダ構成が複雑な、ものすごい膨大なlogファイルから、
特定のワードが含む行と、ファイル名を抽出したいのですが、
・サブフォルダを巡回して命令を実行する
・ファイル名のあとに、検索結果を出す
のやり方がわからず、躓いております。
参考になりそうなサンプルがあればご教示いただけますでしょうか。
test01.log
-----------------------------------
0501 問題ないよ
0501 Error!
|まちがってるよ
|まちがってるよ
0501 問題ないよ
-----------------------------------
このうち
・「Error」のある行
・| ではじまる行
を抜き出し、このような出力結果を希望しています。
test01.log
-----------------------------------
0501 Error!
|まちがってるよ
|まちがってるよ
-----------------------------------
「Find」「再帰的」「文字列」「検索」「Python」「テキストマイニング」などで検索をするも、これといった情報が得られず……
参考になりそうなURL、「こういうワードで検索しろ」などあればお願いします。
特定のワードが含む行と、ファイル名を抽出したいのですが、
・サブフォルダを巡回して命令を実行する
・ファイル名のあとに、検索結果を出す
のやり方がわからず、躓いております。
参考になりそうなサンプルがあればご教示いただけますでしょうか。
test01.log
-----------------------------------
0501 問題ないよ
0501 Error!
|まちがってるよ
|まちがってるよ
0501 問題ないよ
-----------------------------------
このうち
・「Error」のある行
・| ではじまる行
を抜き出し、このような出力結果を希望しています。
test01.log
-----------------------------------
0501 Error!
|まちがってるよ
|まちがってるよ
-----------------------------------
「Find」「再帰的」「文字列」「検索」「Python」「テキストマイニング」などで検索をするも、これといった情報が得られず……
参考になりそうなURL、「こういうワードで検索しろ」などあればお願いします。
164デフォルトの名無しさん
2020/05/05(火) 12:47:27.09ID:hpwOcr6+165デフォルトの名無しさん
2020/05/05(火) 13:47:12.99ID:JDagEH9a Perl時代の教科書は一章まるまる使って正規表現説明してたが
Pythonじゃあそういうことは無くなった
なので現代では言語に関わりなく「正規表現」というキーワード自体知らない、ということが起こってるのではなかろうか
Python チュートリアル ― Python 3.8.3rc1 ドキュメント
https://docs.python.org/ja/3/tutorial/index.html
公式チュートリアルでも「標準ライブラリミニツアー」の箇所にちょっと置かれているだけで、扱いが非常に小さい
つまり、初心者はそこまで念入りには読まないだろうから、キーワード自体を知らない
Pythonじゃあそういうことは無くなった
なので現代では言語に関わりなく「正規表現」というキーワード自体知らない、ということが起こってるのではなかろうか
Python チュートリアル ― Python 3.8.3rc1 ドキュメント
https://docs.python.org/ja/3/tutorial/index.html
公式チュートリアルでも「標準ライブラリミニツアー」の箇所にちょっと置かれているだけで、扱いが非常に小さい
つまり、初心者はそこまで念入りには読まないだろうから、キーワード自体を知らない
166デフォルトの名無しさん
2020/05/05(火) 14:05:25.10ID:3RO6WiLW167デフォルトの名無しさん
2020/05/05(火) 14:15:49.76ID:uTsiWylk >>163
grep使えって
出力フォーマットが気に入らないなら
ripgrep使うかgrep -lをループさせればいい
$ rg -n "^¥||Error" ./*.log
./test02.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ
./test01.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ
grep使えって
出力フォーマットが気に入らないなら
ripgrep使うかgrep -lをループさせればいい
$ rg -n "^¥||Error" ./*.log
./test02.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ
./test01.log
2:0501 Error!
3:|まちがってるよ
4:|まちがってるよ
168デフォルトの名無しさん
2020/05/05(火) 14:18:12.72ID:uTsiWylk regex="^¥||Error"
grep -l -E "$regex" ./*.log | while read file
do
echo "$file"
grep -h -E "$regex" "$file" | xargs printf "¥t%s¥n"
done
#出力
./test01.log
0501 Error!
|まちがってるよ
|まちがってるよ
./test02.log
0501 Error!
|まちがってるよ
|まちがってるよ
grep -l -E "$regex" ./*.log | while read file
do
echo "$file"
grep -h -E "$regex" "$file" | xargs printf "¥t%s¥n"
done
#出力
./test01.log
0501 Error!
|まちがってるよ
|まちがってるよ
./test02.log
0501 Error!
|まちがってるよ
|まちがってるよ
169デフォルトの名無しさん
2020/05/05(火) 14:32:59.61ID:G46XbD1M170デフォルトの名無しさん
2020/05/05(火) 14:37:02.54ID:KwIsFJ1G171デフォルトの名無しさん
2020/05/05(火) 15:10:14.14ID:93UQ4haG >>163
「膨大な」と書いてあるのでpythonでやるのは速度的な面で躊躇する
他の人も書いているけど標準コマンドを使うのが速い
・Linux/macOSならgrep
・Windowsならfindstr
「フォルダ構成が複雑な」と書かれているのでサブフォルダまで検索するには
・grepの場合は-rオプション
・findstrの場合は/Sオプション
を付ける
何らかの理由でpython縛りなら
glob.glob
os.wak
のどちらかを使ってファイルリストを取得した上で、そのファイルに指定したキーワードが含まれるか確認する
「膨大な」と書いてあるのでpythonでやるのは速度的な面で躊躇する
他の人も書いているけど標準コマンドを使うのが速い
・Linux/macOSならgrep
・Windowsならfindstr
「フォルダ構成が複雑な」と書かれているのでサブフォルダまで検索するには
・grepの場合は-rオプション
・findstrの場合は/Sオプション
を付ける
何らかの理由でpython縛りなら
glob.glob
os.wak
のどちらかを使ってファイルリストを取得した上で、そのファイルに指定したキーワードが含まれるか確認する
172デフォルトの名無しさん
2020/05/05(火) 15:34:33.06ID:DTkAo5/g 時代的に書き込み時に複雑なパースが必要になるようなやり方はしないように
って方針が一般化してきたからだろう。
もしくはjson,yamlなら専用のライブラリがあったりでわざわざ正規表現使う必要性も下がってる。
って方針が一般化してきたからだろう。
もしくはjson,yamlなら専用のライブラリがあったりでわざわざ正規表現使う必要性も下がってる。
173デフォルトの名無しさん
2020/05/05(火) 15:38:40.27ID:JDagEH9a ……多分時代が違っていて、grepやawkといったコマンドラインツールはおろか、
リダイレクトやパイプの使い方から知らない
そもそもコマンドラインを使わないから、cdやdirコマンドですらもあやしい世代だ
本当に知らないんだよ
リダイレクトやパイプの使い方から知らない
そもそもコマンドラインを使わないから、cdやdirコマンドですらもあやしい世代だ
本当に知らないんだよ
174デフォルトの名無しさん
2020/05/05(火) 15:40:34.82ID:rwJ86+M0 grep -E '^\||Error' -Hd skip ./**/*.log
-E で正規表現。
-d skip で、ディレクトリ名を非表示。
-H で、ファイル名も表示。
ディレクトリの再帰は、./**/*
出力
./test/test01.log:0501 Error!
./test/test01.log:|まちがってるよ
./test/test01.log:|まちがってるよ
この出力から、: の前をファイル名、後を行に、分解すればよい
Ruby の、glob でも出来るけど
-E で正規表現。
-d skip で、ディレクトリ名を非表示。
-H で、ファイル名も表示。
ディレクトリの再帰は、./**/*
出力
./test/test01.log:0501 Error!
./test/test01.log:|まちがってるよ
./test/test01.log:|まちがってるよ
この出力から、: の前をファイル名、後を行に、分解すればよい
Ruby の、glob でも出来るけど
175デフォルトの名無しさん
2020/05/05(火) 16:29:06.07ID:E9jCQTmY176デフォルトの名無しさん
2020/05/05(火) 17:07:50.66ID:D2QZwsc6 アホしかおらんのか
177163
2020/05/05(火) 17:41:03.01ID:lrlqOn2p たくさんのご返信ありがとうございます。
>>164
ありがとうございました。
ご推察の通り、Pythonは本を一冊読んだ程度の知識しかありません。
チュートリアル一通り試してみます。
>>165
ありがとうございます。
その二つのドキュメントも読み込んでみます。
>>167
ありがとうございます。
申し遅れておりましたが、Windowsユーザーです。
ただ、教えていただいたコマンドを調べてみると、
Windowsでもインストールすれば、ripgrepを扱えるみたいですね。
必ずしもPythonにこだわらなければならないわけでもないので、
(学習中だったので、使ってみたかった程度)
コマンドでの解決も検討してみます。
>>171
>>174
ありがとうございます。
必ずしもPythonでなくてもよいので、Grepやfindstrも調べてみます。
>>164
ありがとうございました。
ご推察の通り、Pythonは本を一冊読んだ程度の知識しかありません。
チュートリアル一通り試してみます。
>>165
ありがとうございます。
その二つのドキュメントも読み込んでみます。
>>167
ありがとうございます。
申し遅れておりましたが、Windowsユーザーです。
ただ、教えていただいたコマンドを調べてみると、
Windowsでもインストールすれば、ripgrepを扱えるみたいですね。
必ずしもPythonにこだわらなければならないわけでもないので、
(学習中だったので、使ってみたかった程度)
コマンドでの解決も検討してみます。
>>171
>>174
ありがとうございます。
必ずしもPythonでなくてもよいので、Grepやfindstrも調べてみます。
178163
2020/05/05(火) 17:41:16.65ID:lrlqOn2p179デフォルトの名無しさん
2020/05/05(火) 18:25:34.80ID:XXjmfIiw おいおい>>175は冗談で出した例だろ
180デフォルトの名無しさん
2020/05/05(火) 18:51:52.49ID:rwJ86+M0 Ruby で作った
# . で始まる、隠し directory, file を除く
glob_pattern = "/mnt/c/Users/Owner/Documents/test/**/*.log"
re = /^\||Error/
first_time = true # 最初の1回だけ
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
# 末尾の改行を削除して、1行ずつ処理する
File.foreach( full_path, chomp: true ) do |line|
line.match( re ) do |matched| # 一致した行だけ
if first_time # 最初だけ
puts full_path
first_time = false
end
puts line
end
end
first_time = true
end
出力
/mnt/c/Users/Owner/Documents/test/test/test01.log
0501 Error!
|まちがってるよ
|まちがってるよ
/mnt/c/Users/Owner/Documents/test/test02.log
|xx
bb Errorzz
# . で始まる、隠し directory, file を除く
glob_pattern = "/mnt/c/Users/Owner/Documents/test/**/*.log"
re = /^\||Error/
first_time = true # 最初の1回だけ
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
# 末尾の改行を削除して、1行ずつ処理する
File.foreach( full_path, chomp: true ) do |line|
line.match( re ) do |matched| # 一致した行だけ
if first_time # 最初だけ
puts full_path
first_time = false
end
puts line
end
end
first_time = true
end
出力
/mnt/c/Users/Owner/Documents/test/test/test01.log
0501 Error!
|まちがってるよ
|まちがってるよ
/mnt/c/Users/Owner/Documents/test/test02.log
|xx
bb Errorzz
181デフォルトの名無しさん
2020/05/05(火) 21:21:30.44ID:6nb4DqgK 本当にデータが大きいのであれば
データを分割して複数のPCで並列実行するのも
考えた方がいい
データを分割して複数のPCで並列実行するのも
考えた方がいい
182デフォルトの名無しさん
2020/05/05(火) 23:18:26.51ID:G46XbD1M Pythonでもシェルでもどっちでも良いけど、大量ファイル相手ならマルチで処理すれば良い
ファイル毎にやる処理同じなんだから
ファイル毎にやる処理同じなんだから
183180
2020/05/06(水) 21:09:35.21ID:Fjn1hDTG184デフォルトの名無しさん
2020/05/06(水) 21:20:13.91ID:ohBd/rOh185デフォルトの名無しさん
2020/05/07(木) 21:24:10.42ID:xxddKGgg186デフォルトの名無しさん
2020/05/07(木) 21:25:15.27ID:xxddKGgg187デフォルトの名無しさん
2020/05/07(木) 22:16:34.03ID:O8jL8wQb >温かみのある書き方
「職人が一行一行、丁寧に書き上げました」
「職人が一行一行、丁寧に書き上げました」
188sage
2020/05/07(木) 23:20:38.81ID:RMklkh4T rubyは玄人向けだから初心者は使っちゃダメだぞっ
import glob
for log in glob.glob('**/*.log', recursive=True):
. outputs = []
. with open(log, 'r') as f:
. for line in f:
. if line.startswith('|') or line.find('Error') >= 0:
. outputs.append(line)
. if len(outputs):
. print(log)
. print('----------')
. print(''.join(outputs), end='')
. print('----------')
import glob
for log in glob.glob('**/*.log', recursive=True):
. outputs = []
. with open(log, 'r') as f:
. for line in f:
. if line.startswith('|') or line.find('Error') >= 0:
. outputs.append(line)
. if len(outputs):
. print(log)
. print('----------')
. print(''.join(outputs), end='')
. print('----------')
189デフォルトの名無しさん
2020/05/07(木) 23:21:50.47ID:VKbX/7v8 美味しそうw
190デフォルトの名無しさん
2020/05/07(木) 23:37:05.12ID:Lnek/XJg >>188
`in`を使いましょう
The find() method should be used only if you need to know the position of sub. To check if sub is a substring or not, use the in operator:
ついでにRubyの例はoutputsの配列が
めちゃくちゃでかくなる可能性も考慮されてる
`in`を使いましょう
The find() method should be used only if you need to know the position of sub. To check if sub is a substring or not, use the in operator:
ついでにRubyの例はoutputsの配列が
めちゃくちゃでかくなる可能性も考慮されてる
191180
2020/05/08(金) 12:32:49.45ID:Fn4yfVbS192180
2020/05/08(金) 12:39:56.07ID:Fn4yfVbS Python は大学院卒とか、高学歴の非プログラマーの学者が使うもの。
数学・統計は知っているけど、プログラミング・コンピューター・OS などを知らない
一方、Ruby は低学歴の職人プログラマーが使うもの。
数学・統計は知らないけど、プログラミング・コンピューター・OS などには詳しい
だから、Rubyの1行1行には、職人さんが丁寧に書いた、温かみが感じられる!
数学・統計は知っているけど、プログラミング・コンピューター・OS などを知らない
一方、Ruby は低学歴の職人プログラマーが使うもの。
数学・統計は知らないけど、プログラミング・コンピューター・OS などには詳しい
だから、Rubyの1行1行には、職人さんが丁寧に書いた、温かみが感じられる!
193デフォルトの名無しさん
2020/05/08(金) 13:25:49.56ID:tDlcbx57 Pythonが文字列処理得意だったらなあ
194デフォルトの名無しさん
2020/05/08(金) 17:09:53.24ID:JpV79Xjz195デフォルトの名無しさん
2020/05/08(金) 19:00:25.69ID:ztqG52En 例えば多数ある文章間で使用単語の類似性を検討するにはどの言語がやりやすい?
196デフォルトの名無しさん
2020/05/08(金) 19:26:27.46ID:qca/Mwjw >>195
word2vecやdoc2vecのライブラリが揃ってたらどの言語でも良いと思う
参考資料が多いと言う観点や辞書の手に入りやすさと言う観点からはpythonかな
その他重要なのは、対象とする文書を読み込めるを機能があるかどうか
mdやtxtのASCIIばかりでなくdocxやpdfも対象と言うことならpythonでいい
word2vecやdoc2vecのライブラリが揃ってたらどの言語でも良いと思う
参考資料が多いと言う観点や辞書の手に入りやすさと言う観点からはpythonかな
その他重要なのは、対象とする文書を読み込めるを機能があるかどうか
mdやtxtのASCIIばかりでなくdocxやpdfも対象と言うことならpythonでいい
197デフォルトの名無しさん
2020/05/08(金) 21:30:24.58ID:FhTTD0+N198デフォルトの名無しさん
2020/05/08(金) 23:18:55.72ID:B0NvsSSc >>194
ぱいそんに
ぱいそんに
199デフォルトの名無しさん
2020/05/09(土) 09:29:52.12ID:3rxWY8lS おっぱyは4bytes
200デフォルトの名無しさん
2020/05/09(土) 11:28:18.96ID:4AGhJAkS 知識が20年前ぐらいで止まってるんだけど
perlのかわりになりますかね
perlのかわりになりますかね
201デフォルトの名無しさん
2020/05/09(土) 13:14:16.71ID:mr/P9GQq perlが書ける人なら、大概の言語はOKなんではないか?
202デフォルトの名無しさん
2020/05/09(土) 14:05:02.83ID:/WGeoYJn203デフォルトの名無しさん
2020/05/09(土) 14:14:06.26ID:m5t3nUyt perlのどこまでを要求するかにもよるだろうけど、
概ね他の言語(Python含む)で代替できるのでは?
概ね他の言語(Python含む)で代替できるのでは?
204デフォルトの名無しさん
2020/05/09(土) 14:18:35.09ID:m5t3nUyt205デフォルトの名無しさん
2020/05/09(土) 15:55:31.80ID:mr/P9GQq その記述はviでもsedでも使えるので便利
206デフォルトの名無しさん
2020/05/09(土) 18:24:57.68ID:9+f2Z3ZT207デフォルトの名無しさん
2020/05/09(土) 18:26:06.32ID:9+f2Z3ZT Perlって記号多用して読みにくくなるから
Pythonの方がいいわ
Pythonの方がいいわ
208デフォルトの名無しさん
2020/05/09(土) 18:57:08.84ID:Gxw/aWGG ワンライナーをするにはpythonはあんま向いてないな。まあ最近ワンライナーあんまり使わなくなってきたけど。
209デフォルトの名無しさん
2020/05/10(日) 09:06:42.56ID:j31NiFTx pythonだと読みやすくするために
毎回一時変数使って構造化しないといけないから
書き捨てるようなテキスト処理とは相性が悪い
毎回一時変数使って構造化しないといけないから
書き捨てるようなテキスト処理とは相性が悪い
210デフォルトの名無しさん
2020/05/11(月) 22:09:27.83ID:qfXbD+ub >>188
横から質問します。
私は163さんではありませんが、学習のためにここを覗きました。
記載されているプログラムを実行すると、
’|まちがってるよ¥n’ ,’|まちがってるよ¥n’
と前後に記号と、改行コードがついてしまいますが、これを除去して出力する方法はありますでしょうか。
横から質問します。
私は163さんではありませんが、学習のためにここを覗きました。
記載されているプログラムを実行すると、
’|まちがってるよ¥n’ ,’|まちがってるよ¥n’
と前後に記号と、改行コードがついてしまいますが、これを除去して出力する方法はありますでしょうか。
211デフォルトの名無しさん
2020/05/11(月) 23:26:53.85ID:masQzK0H line.rstrip()
212デフォルトの名無しさん
2020/05/12(火) 10:06:33.55ID:4WwqN1hQ ほちがってるよ
213デフォルトの名無しさん
2020/05/12(火) 11:44:31.16ID:s06VnCgE214210
2020/05/12(火) 22:39:09.39ID:7RXslmjs215210
2020/05/12(火) 22:40:50.64ID:7RXslmjs216デフォルトの名無しさん
2020/05/13(水) 03:39:34.71ID:ibBgBr2u >>215
OSとpythonのバージョンを教えて
あとfor line in f:の下に以下のデバッグコード入れてみて欲しい
print([f'{x:02x}' for x in line.encode('utf-8')])
の出力が見たい
macで実行すると
>>> line = 'あいう¥n'
>>> print([f'{x:02x}' for x in line.encode('utf-8')])
['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86', '0a']
>>> print([f'{x:02x}' for x in line.rstrip().encode('utf-8')])
['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86']
最後の0aが改行コードLFなので、rstrip()するとちゃんと消える
OSとpythonのバージョンを教えて
あとfor line in f:の下に以下のデバッグコード入れてみて欲しい
print([f'{x:02x}' for x in line.encode('utf-8')])
の出力が見たい
macで実行すると
>>> line = 'あいう¥n'
>>> print([f'{x:02x}' for x in line.encode('utf-8')])
['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86', '0a']
>>> print([f'{x:02x}' for x in line.rstrip().encode('utf-8')])
['e3', '81', '82', 'e3', '81', '84', 'e3', '81', '86']
最後の0aが改行コードLFなので、rstrip()するとちゃんと消える
217デフォルトの名無しさん
2020/05/14(木) 20:12:34.90ID:eyziGhr3 a = ''
b = '123'
とした時、
if a: とすれば、False 、
if b: とすれば、True と評価されるけど、
この真偽値をif文を用いずに変数に直接代入するにはどうしたらいい?
bool_a = not (not a) # False
bool_b = not (not b) # True
とすれば、目的は達せられるけど、二重否定でいかにもまわりくどい
そのものズバリの方法はないかな?
b = '123'
とした時、
if a: とすれば、False 、
if b: とすれば、True と評価されるけど、
この真偽値をif文を用いずに変数に直接代入するにはどうしたらいい?
bool_a = not (not a) # False
bool_b = not (not b) # True
とすれば、目的は達せられるけど、二重否定でいかにもまわりくどい
そのものズバリの方法はないかな?
218デフォルトの名無しさん
2020/05/14(木) 20:20:09.01ID:xR/PZA9p !!a
219デフォルトの名無しさん
2020/05/14(木) 20:22:21.62ID:xR/PZA9p bool(a)
221デフォルトの名無しさん
2020/05/17(日) 17:21:31.20ID:xAYNfwXu scikit-learnよりXGBoostのrandomforestのほうが性能よいのですか?
222デフォルトの名無しさん
2020/05/19(火) 22:28:31.73ID:m8F9ts/N > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
223デフォルトの名無しさん
2020/05/24(日) 23:50:52.29ID:k0sc2Lpo えーと、たとえばubuntuでspyder使うとき、ubuntuのaptとかsnapで入れたものと
Anacondaの中で入れたものだと設定ファイルとかちゃんと別のものになりますか?
Anacondaの中で入れたものだと設定ファイルとかちゃんと別のものになりますか?
224デフォルトの名無しさん
2020/05/25(月) 01:07:05.65ID:Y9cCXaqZ 自分でどこを見るのか設定するだけ
225デフォルトの名無しさん
2020/05/25(月) 13:33:29.09ID:gis+qwRr 漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使って、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
rubyコマンドの参照先を確認する
rbenv which ruby
~/.rbenv/versions/2.6.6/bin/ruby
global はシステム全体、local は、そのプロジェクトだけのバージョンを設定する
rbenv global 2.6.6
rbenv local 2.6.6
system は、apt などで、/usr/bin/ruby へ、インストールしたバージョンを設定する
rbenv global system
rbenv local system
つまり、apt のパッケージとも共存できる
VSCode の拡張機能、Remote WSL も使って、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
rubyコマンドの参照先を確認する
rbenv which ruby
~/.rbenv/versions/2.6.6/bin/ruby
global はシステム全体、local は、そのプロジェクトだけのバージョンを設定する
rbenv global 2.6.6
rbenv local 2.6.6
system は、apt などで、/usr/bin/ruby へ、インストールしたバージョンを設定する
rbenv global system
rbenv local system
つまり、apt のパッケージとも共存できる
226223
2020/05/26(火) 00:28:20.96ID:4e/0HGGp レスくれた人ありがとう。
どうやら共存大丈夫そうですね。
どうやら共存大丈夫そうですね。
227デフォルトの名無しさん
2020/05/28(木) 16:03:49.90ID:G/K3BByi return selfするメソッドのアノテーションってどう書けばいいんですか?
228デフォルトの名無しさん
2020/05/28(木) 16:25:49.15ID:Xow4Xb3r from __future__ import annotations
https://www.python.org/dev/peps/pep-0563/#enabling-the-future-behavior-in-python-3-7
https://www.python.org/dev/peps/pep-0563/#enabling-the-future-behavior-in-python-3-7
229デフォルトの名無しさん
2020/05/31(日) 23:18:11.68ID:LQxE6hd6 じゃんけんプログラムがかけるようになった。
フリーで仕事がとれるようになるまでが10だとしたら、
自分はいくらくらいですか?
マジレスお願いします。
フリーで仕事がとれるようになるまでが10だとしたら、
自分はいくらくらいですか?
マジレスお願いします。
230デフォルトの名無しさん
2020/05/31(日) 23:37:35.44ID:TtXgrlrn231デフォルトの名無しさん
2020/05/31(日) 23:55:59.29ID:H+ILjMnx232デフォルトの名無しさん
2020/06/01(月) 08:45:29.60ID:jwD9tPwu233デフォルトの名無しさん
2020/06/01(月) 15:55:08.82ID:Ottf6K9E tensorflow 2.1のtf.keras.layers.BatchNormalizationはfloat64に対応してないですか?
BatchNormalizationレイヤーにデータxを流すと以下のエラーが表示されます
TypeError: Value passed to parameter 'x' has DataType float64 not in list of allowed values: float16, bfloat16, float32
BatchNormalizationレイヤーにデータxを流すと以下のエラーが表示されます
TypeError: Value passed to parameter 'x' has DataType float64 not in list of allowed values: float16, bfloat16, float32
234デフォルトの名無しさん
2020/06/01(月) 17:05:51.39ID:XHS7d8W6 画像処理AIなら16bitでも十分であることがわかってきて、nvidiaも今更16bit対応を追加しつつある状況なのに、64bitでやる必要あるの?
235デフォルトの名無しさん
2020/06/07(日) 23:44:20.07ID:66u/7Jn0 >>188
みたいな文書の検索処理の対象がUnicodeだった場合、pythonとRubyだったらどちらが早いのかな?
みたいな文書の検索処理の対象がUnicodeだった場合、pythonとRubyだったらどちらが早いのかな?
236デフォルトの名無しさん
2020/06/08(月) 07:08:57.26ID:jRTLufNn 「早い」が処理速度なのか開発コストなのか
237デフォルトの名無しさん
2020/06/08(月) 11:39:46.10ID:XmX+evHg >>235
それオレ環で簡易ベンチしたんだけど
インタプリタの起動速度を含めるとpython : ruby = 1 : 1.06
処理部分だけで比べるとpython : ruby = 1 : 0.53
だった
でもその差が気になるような処理をするなら
pythonでもrubyでもなくgrepとか適切なツールを使うべき
それオレ環で簡易ベンチしたんだけど
インタプリタの起動速度を含めるとpython : ruby = 1 : 1.06
処理部分だけで比べるとpython : ruby = 1 : 0.53
だった
でもその差が気になるような処理をするなら
pythonでもrubyでもなくgrepとか適切なツールを使うべき
238デフォルトの名無しさん
2020/06/08(月) 13:07:05.48ID:zTE1iszp 文脈で分かんない?
239デフォルトの名無しさん
2020/06/08(月) 14:58:20.15ID:CcRhG7ur >>238
この分野では曖昧性がある場合は必ず明記することをお勧めする
この分野では曖昧性がある場合は必ず明記することをお勧めする
240デフォルトの名無しさん
2020/06/08(月) 20:38:55.89ID:A6u337hJ 曖昧なこと曖昧なまま連絡つないだりしたら吊るされるんよな……
241デフォルトの名無しさん
2020/06/09(火) 04:35:52.13ID:Y3iPH2bl たかが5chで大げさだな
242デフォルトの名無しさん
2020/06/09(火) 05:38:14.05ID:mC6F5bWM たかが5chだけと一応技術板だしね
ゆるーくやりたいならマ板にどうぞ
ゆるーくやりたいならマ板にどうぞ
243デフォルトの名無しさん
2020/06/09(火) 07:48:39.06ID:gdEdgfU+ 一応技術板だけど所詮5chだし
244デフォルトの名無しさん
2020/06/14(日) 15:33:11.91ID:9oaOHKUH >>188
横から失礼します。
一連のやり取り興味深く見ておりました。
たとえば、検索対象のログファイルが全部Unicodeであった場合、print処理するときにutf8やなんかにencodeするだけでいけますか?
検索文字もUnicodeに変換しないと駄目でしょうか。
横から失礼します。
一連のやり取り興味深く見ておりました。
たとえば、検索対象のログファイルが全部Unicodeであった場合、print処理するときにutf8やなんかにencodeするだけでいけますか?
検索文字もUnicodeに変換しないと駄目でしょうか。
245デフォルトの名無しさん
2020/06/14(日) 16:39:48.82ID:9pT3ELpf >>244
pythonでやるなら検索対象のログファイルを読み込むときにutf8に変換したほうが楽だと思うぞ
pythonでやるなら検索対象のログファイルを読み込むときにutf8に変換したほうが楽だと思うぞ
246デフォルトの名無しさん
2020/06/15(月) 12:37:42.32ID:iqqqiJ5Y >>244
>検索対象のログファイルが全部Unicodeであった場合、print処理するときにutf8やなんかにencodeする
ログファイルがUnicodeって少数派じゃないかな
ログファイルがutf8だったらpythonで読むときにUnicodeにdecodeするべき
printは勝手に環境に合わせてencodeしてくれるのを期待
>検索対象のログファイルが全部Unicodeであった場合、print処理するときにutf8やなんかにencodeする
ログファイルがUnicodeって少数派じゃないかな
ログファイルがutf8だったらpythonで読むときにUnicodeにdecodeするべき
printは勝手に環境に合わせてencodeしてくれるのを期待
247デフォルトの名無しさん
2020/06/15(月) 13:07:41.60ID:yqEOs8la Unicodeはencodingではないんだけど
UTF-16のことをUnicodeって言ってる?
UTF-16のことをUnicodeって言ってる?
248デフォルトの名無しさん
2020/06/15(月) 13:29:56.19ID:Sq9k4kzW まさかutf16leのことをunicodeって呼んでるのか?
だったらutf16leにデコードしちゃダメだろ…
だったらutf16leにデコードしちゃダメだろ…
249デフォルトの名無しさん
2020/06/19(金) 00:00:07.20ID:NJwW7ejS python 使い始めて数年だけども、今日初めて知ったことがあるので質問させてください。
python のクラスって、インスタンスを生成した後に、勝手にメンバー変数を定義できちゃうものなんですか?
もし、それがよく知られている機構なのであれば、一般的に何と呼ばれているのか教えてください。
例)
>>> class myClass():
... pass
...
>>> c1 = myClass()
>>> dir(c1)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
>>> c1.hoge = 'hogehoge'
>>> c1.hoge
'hogehoge'
>>> dir(c1)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'hoge']
また、こう言ったことをさせないためには、どうすれば良いのでしょうか?
python のクラスって、インスタンスを生成した後に、勝手にメンバー変数を定義できちゃうものなんですか?
もし、それがよく知られている機構なのであれば、一般的に何と呼ばれているのか教えてください。
例)
>>> class myClass():
... pass
...
>>> c1 = myClass()
>>> dir(c1)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
>>> c1.hoge = 'hogehoge'
>>> c1.hoge
'hogehoge'
>>> dir(c1)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'hoge']
また、こう言ったことをさせないためには、どうすれば良いのでしょうか?
250デフォルトの名無しさん
2020/06/19(金) 00:46:41.82ID:2U294rNY251デフォルトの名無しさん
2020/06/19(金) 01:40:12.76ID:hR7tqNr3 Ruby・JavaScript でも同じ。
動的言語のオープンクラス・メタプログラミング・モンキーパッチとかだろw
JavaScript のprototype.js では、クラスに独自のメソッドを追加していたから、
ユーザーを混乱させた、モンキーパッチ・猿として嫌われたw
一方、Ruby on Rails では、オープンクラスとして便利なメソッドとして認められている。
JavaScript のjQuery の$ とか、Lodash の_ なども、認められている
同じことをやっても、嫌われると猿の扱いで、
好かれると、便利と言われるw
動的言語のオープンクラス・メタプログラミング・モンキーパッチとかだろw
JavaScript のprototype.js では、クラスに独自のメソッドを追加していたから、
ユーザーを混乱させた、モンキーパッチ・猿として嫌われたw
一方、Ruby on Rails では、オープンクラスとして便利なメソッドとして認められている。
JavaScript のjQuery の$ とか、Lodash の_ なども、認められている
同じことをやっても、嫌われると猿の扱いで、
好かれると、便利と言われるw
レスを投稿する
ニュース
- Z世代、35%が週休3日希望 「無理せず・安定」に重き 民間調査 [♪♪♪★]
- 斎藤元彦・兵庫県知事、関西学院大学での「講演」予定に波紋 法学部長がコメント「教授会は承認せず」「利用されているようで不愉快」 [ぐれ★]
- 【コメ】やっぱり進次郎のほうがマシ…「コメの値下げは無理」と言い張る農林族の鈴木農水大臣 ★3 [ぐれ★]
- 石破前首相 おこめ券配布に「その原資は何?国民の税金でしょう」「リーズナブルな価格でお米が手に入るようにすることの方が大事」 [muffin★]
- 「イスラム土葬墓地、国の責任で全国に整備を」大分の自民市議団が異例要望 岩屋毅氏尽力 日出町 [少考さん★]
- 【発信国情報】X、プロフィール上に「VPN使用の有無」も表示か… ★2 [BFU★]
- 【速報】香港、日本総領事と断交 [369521721]
- かたおやさんあつまれぇ
- 高市さんのG20遅刻問題洒落にならないことになってた、日本抜きで全会一致で中国寄りの首脳宣言が採択されてそのまま有無を言わさず閉幕 [709039863]
- お前ら「セブンイレブン憎し!」←正直すまなかったと思ってる
- (´・ω・`)この板定期スレしかないね
- 都会のネズミと田舎の魔神
