Pythonのお勉強 Part62

■ このスレッドは過去ログ倉庫に格納されています
2019/09/15(日) 16:06:00.08ID:E+Kc3PWT0
★当スレに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)ちょっとめんどうそう。

◇Pythonオフィシャルサイト
http://www.python.org/

◇まとめwiki
ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その44【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1563969768/

〇前スレ
Pythonのお勉強 Part61
http://mevius.5ch.net/test/read.cgi/tech/1563622784/

次スレの建立は>>985あたりが挑戦する。 [EOF]
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (エムゾネ FF9f-L2cD)
垢版 |
2019/09/15(日) 17:23:36.55ID:+Psjuv8oF
O2
3デフォルトの名無しさん (ワッチョイ 9f01-e0wG)
垢版 |
2019/09/16(月) 16:01:41.11ID:pu7P8atN0
建てるのがちょっとはやくて?沈んでしまったのでageとく
2019/09/16(月) 16:37:55.80ID:YXSl1XrX0
age支援
2019/09/16(月) 19:05:56.22ID:MsYhkP050
喋るゴミがうるさいからこっちかな
2019/09/17(火) 07:13:06.28ID:oiLDvE8A0
あーゆうのは見てたくないから俺もこっちだな
2019/09/18(水) 20:15:44.72ID:Eln4Km+3M
すまん負け犬わんわんおりゅ?w

999 名前:デフォルトの名無しさん [sage] :
>>973
まwまw負け犬www
無能わんわん完全敗北ワォーーーンw
今度から格上の相手に噛み付かないよう気を付けなw

1000 名前:デフォルトの名無しさん [sage] :
はい、終わりw
2019/09/18(水) 20:29:20.18ID:CdEduQpkp
くだらん書き込みのせいでpythonの話が下火になっているな
なんでこのスレに住み着いたんだろ
9デフォルトの名無しさん (ワッチョイ 9f12-pDK+)
垢版 |
2019/09/18(水) 20:35:46.62ID:JVT+y9R+0
ガイジ2号がいつまでもガイジ1号の相手してるからだろう
どっちもプリウスミサイル叩き込んで殺した方がいい
2019/09/18(水) 21:05:01.27ID:Ei+Tp6tdM
フルボッコされて発狂してるだけだろw
2019/09/18(水) 21:07:25.51ID:WnNHWkf40
明日、ワッチョイの変化しない部分をあぼ〜ん設定して1週間放置すれば
お豆腐〜普通メンタルレベルなら消えるんじゃね?
12デフォルトの名無しさん (アウアウクー MM73-Ivwm)
垢版 |
2019/09/18(水) 23:49:13.69ID:Eln4Km+3M
>>10
わんわんでしゅか〜?wお手!w
13デフォルトの名無しさん (ワッチョイ 5197-KC02)
垢版 |
2019/09/20(金) 03:06:28.34ID:cbLpEk730
Jupyterで、
%%bashって書いたセルの一部でPythonを使うとかいうことはできないのかな。
forループとか、変数展開とか。
もちろんsubprocessで実行すればいいんだけど、シェルがメインでpythonが少しの場合、
なんかいいやり方ないかなと思って。
14デフォルトの名無しさん (ワッチョイ 4d7c-9GzD)
垢版 |
2019/09/20(金) 16:44:00.15ID:rjndmUfp0
何がしたいのかもう少しくわしく
15デフォルトの名無しさん (ワッチョイ 5197-KC02)
垢版 |
2019/09/21(土) 01:15:40.54ID:U1H67dB+0
for i in range(1, 6):
 subprocess.run(('mkdir %d_new' % (i)).split(' ')
 subprocess.run(('cp %d %d_new' % (i, i)).split(' ')
と同様のことを、
for i in range(1, 6):
 !mkdir ${i}_new
 !cp $i $i_new
みたいな感じで書けないかな、と。
これはpythonの中にbashが入ってる例だけど、逆でもいいので。
2019/09/21(土) 03:11:15.88ID:xUElhJo20
Ruby なら、こういう感じ。
ただし、、DryRun なので、実際には実行されません

Python には、Fileutils みたいな、便利なライブラリは無いのか?

require 'fileutils'

( 1..2 ).each do |idx|
FileUtils::DryRun.mkdir( idx.to_s )
FileUtils::DryRun.touch( "#{ idx }/#{ idx }.txt" )
end

出力
mkdir 1
touch 1/1.txt

mkdir 2
touch 2/2.txt
17デフォルトの名無しさん (アウアウウー Sa85-8lXu)
垢版 |
2019/09/21(土) 05:24:04.46ID:L2nY9anWa
>>15
xonsh
2019/09/21(土) 08:35:59.52ID:sgtRiYtH0
>>16
知らないのになぜ答える(呆)
2019/09/21(土) 08:56:29.85ID:809PHD3I0
>>16
rubyは聞いてないです。pythonで回答してください。
2019/09/21(土) 09:00:33.23ID:b6UCNT9id
>>18
>>19
pythonより、Rubyの方が将来性はある。
特にキャリアの初期段階では、Rubyがオススメ。
Pythonは機械学習系で人気だけど、初学者にはオススメできない。
CSを学んだ人とかには、オススメできるのかな?
KENTA氏も、そう言ってる。
2019/09/21(土) 09:36:25.49ID:l4slB5oe0
>>19
荒らしの相手しちゃだめだよー
22デフォルトの名無しさん (ワッチョイ a54e-hQOS)
垢版 |
2019/09/21(土) 10:23:45.09ID:AojYT9zq0
将来性のないプログラミング言語ワースト5
5 Programming Languages That Are Probably Doomed
https://insights.dice.com/2019/07/29/5-programming-languages-probably-doomed/
Ruby ←←←www
Haskell
Objective-C
R
Perl

KENTA「Rubyに拘泥するやつは伸びない」

嘘ばかりついてるなこの糖質ww
やはりハエがウンコに惹かれるように、
カス人間もクソ言語に惹かれるんだろうwww
2315 (ワッチョイ 5197-KC02)
垢版 |
2019/09/21(土) 10:54:29.63ID:U1H67dB+0
>>15だけど、
Jupyterにおいて、
%%bashはセル全体をbashで実行、
!はその行をシェルで実行、で、
>>15の例が実はそのまま動くってことがわかった。
確認不足で質問してしまい申し訳ない。
>>17 xonsh調べてみます。

>>16
うーん、、、、15で13だって名乗り忘れたのも悪いけど、
>>13を読んだらディレクトリを作ったりファイルをコピーしたりということは単なる例で、
言語の制御構文、変数を使いつつシェルをシェルスクリプトレベルに簡単に実行したいという質問だったんですけどね。

あなたの例はJupyter上でシェルを簡単に実行できるからJupyterの機能を使って実現したいという大前提を無視してて
単にRubyでディレクトリの作成とファイルのコピーが出来る、ってだけの例で何の答えにもなってない。
当然Pythonにもファイル操作のライブラリはあるよ。
Rubyなら出来るって思うのは勝手だが、Pythonでは簡単にできないって妄想して発言するのやめてくれないかな。
てかそんなにRubyが良いって言うなら、RubyでJupyterに相当するもの教えてもらえないかな。そうしたら日常で使ってみるから。
irbは相当しないんでよろしく。
2019/09/21(土) 11:05:54.75ID:4a5WZv9wM
プリプロセッサを作ってpythonと同名のエイリアスを作るとかなら比較的簡単そう
2019/09/21(土) 20:41:07.52ID:5TKws+Zn0
また異教徒が湧いているようだな・・・・・・
2019/09/21(土) 20:59:48.05ID:4gE2iOeh0
プログラミング言語が宗教なら、複数の言語を日常的に使ってる奴はやばいじゃん
2019/09/21(土) 23:05:30.93ID:6UrGeJMka
日本人は仏教徒とかいっても、クリスマスとかハロウィンとか祝うじゃん
それと同じことでは?
2019/09/22(日) 00:15:54.93ID:fbK9NPLj0
nullを\Nと表現しているテキストファイルがあります。
pandasのread_csvのオプションで
na_values = '\\N' と指定しても、読取後に N としか解釈されません。
なお、dtype=str としてすべて文字列で読み込んでいます。

\Nをnull扱いで読み取る方法はないでしょうか。
2019/09/22(日) 01:33:24.69ID:1ZcxgUxg0
>>27
マホメットの誕生日もお祝いしないと
30デフォルトの名無しさん (ワッチョイ 0261-tKbs)
垢版 |
2019/09/22(日) 08:05:54.77ID:Hc6O2uDq0
神道でも墓は寺にあったりするし。
31デフォルトの名無しさん (オッペケ Sr51-8lXu)
垢版 |
2019/09/22(日) 09:51:13.12ID:5WmnN11dr
状況によって使い分けるだけ
食材は包丁、紙はハサミ、木材はノコギリで切るのと同じ
32デフォルトの名無しさん (ワッチョイ 4d7c-9GzD)
垢版 |
2019/09/22(日) 13:36:11.13ID:NWulzMwt0
na_values = ('\\N',)
2019/09/22(日) 13:44:50.84ID:7LiwHA260
>>28
Ruby では、独自の CSV::Converters を定義すれば、できるけど

require 'csv'

str = <<"EOT"
"\N",1
"2",\N
EOT

proc = Proc.new do |field, field_info|
if field == "\N"
nil
else
field
end
end

options = { :converters => proc }

CSV.parse( str, options ).each do | row |
p [ row[ 0 ], row[ 1 ] ]
end

出力
[nil, "1"]
["2", nil]
34デフォルトの名無しさん (ワッチョイ 4d7c-9GzD)
垢版 |
2019/09/22(日) 13:47:39.09ID:NWulzMwt0
>>> pd.read_csv(io.BytesIO(b'abc,def,yyy\nghi,\\N,xxx\n'), sep=',', dtype=str, na_values=('ghi','\\N'))
abc def yyy
0 NaN NaN xxx

>>> pd.read_csv(io.BytesIO(b'"abc","def","yyy"\n"ghi","\\N","xxx"\n'), sep=',', dtype=str, na_values=('ghi',r'\N'))
abc def yyy
0 NaN NaN xxx
2019/09/22(日) 17:25:53.71ID:fbK9NPLj0
皆様、ありがとうございます
escape_charが邪魔していたようです
escape_char='\\'を外したら動作しました。
2019/09/22(日) 18:11:35.58ID:5MoRoXDq0
すみません、a.txt , b.txt ,c.txtといった感じで5個テキストファイルがあって
各テキストファイルには1行ずつ
2465
451
5887
と並んでいるのですが、これを各テキストごとにaリスト、bリストとリストを
一括で作りたいのですが、どうすればいいでしょうか・・。
一つだけならopenで開いてa = [ ]にappendするだけなのですが、一括でやるのがネックでして
2019/09/22(日) 18:11:40.10ID:5MoRoXDq0
すみません、a.txt , b.txt ,c.txtといった感じで5個テキストファイルがあって
各テキストファイルには1行ずつ
2465
451
5887
と並んでいるのですが、これを各テキストごとにaリスト、bリストとリストを
一括で作りたいのですが、どうすればいいでしょうか・・。
一つだけならopenで開いてa = [ ]にappendするだけなのですが、一括でやるのがネックでして
2019/09/22(日) 18:40:53.40ID:aANq22gT0
>>36-37
5回ループさせたらいかんのんけ?
2019/09/22(日) 18:44:32.08ID:aANq22gT0
>>38補足
各リスト名は入力ファイル名から拡張子とったやつに、すればいんじゃね?
でもって作成済みリスト名を集めたリストでもつくっとけ
2019/09/22(日) 19:25:51.59ID:vTpi5vA10
コマンドライン引数でループするのが成功法
2019/09/22(日) 19:44:33.01ID:5AUskteJa
>>37
glob.globをforループしたら
2019/09/22(日) 20:14:43.44ID:7LiwHA260
ホリエモンもおすすめ!人気のプログラミングキャンプの様子を特別公開
https://www.youtube.com/watch?v=Ob1SYQnc1d0

岩手県八幡平市(はちまんたいし)
参加費無料のスパルタキャンプが、10/8 12:00 まで、15名募集中!
(ただし、今年の競争率は、25倍ぐらい)

11/2 〜 11/24 の毎週土・日の8日間、8:30 〜 18:30

Python で、機械学習・LINE BOT・Django
2019/09/22(日) 20:28:10.43ID:7LiwHA260
Ruby なら、こういう感じで、5つ書けばできるけど

# 末尾の改行を削除して、配列に読み込む

a = File.readlines( "a.txt", chomp: true )
b = File.readlines( "b.txt", chomp: true )
2019/09/22(日) 20:35:47.40ID:p1u+NLfG0
一括でやる必要性の意図が全く分からんけど、下のような程度の話ならくだすれで聞いた方がいいかな

d = {}
for x in ["a.txt", "b.txt", "c.txt"]:
 with open(x) as f:
   d[x] = f.readlines()
45デフォルトの名無しさん (ワッチョイ 5197-KC02)
垢版 |
2019/09/22(日) 20:36:33.96ID:ulErh40p0
>>36
普通はリストを要素に持ち、ファイル名をキーに持つ辞書にする
texts_dict = {}
for file in ['a.txt', 'b.txt', 'c.txt']:
 with open(file, 'r') as f:
  texts_dict[file] = f.readlines()
みたいな
で、使うときはtexts_dict['a.txt']とかでアクセス
どうしても変数に直接入れたければ、
globals()['a'] = [] とかすれば a = [] をしたことと同じになるから、それで行うけど、
ファイル名が可変だったら結局globals()経由で辞書アクセスすることになるから、
普通は辞書にすると思うよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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