Pythonのお勉強 Part51at TECH
Pythonのお勉強 Part51 - 暇つぶし2ch951:デフォルトの名無しさん
17/01/05 09:28:53.61 bgD/9Tck.net
>>923
LibreOfficeは開発は盛んだよ
エクセルのファイルも開けるし、互換性はかなり高いと思う。

>>918
わざわざwindowsでしか使えない言語なんて選ぶべきでないだろうと思うが。
今後は、windowsの立場も絶対的なものではなくなっていくだろうと思う。
いつかサポート切れにされるかもしれないし。

どこでも動く、オープンな言語で作成するプログラムがいいと思うよ。

952:デフォルトの名無しさん
17/01/05 10:24:46.51 A5YsqABa.net
>>924
VBAのくだりは半分冗談
でもWindowsの場合は「どこでも動く、オープンな言語」って難しくないか?
JavaScriptくらいかな

953:デフォルトの名無しさん
17/01/05 11:13:32.72 2uA+A+xC.net
そういえば Open Office ってもうすっかり聴かなくなったな

どこ逝っちゃったんだろ

954:デフォルトの名無しさん
17/01/05 11:52:21.36 fddeL2Ud.net
あいつならOSSの墓場に行ったよ

955:デフォルトの名無しさん
17/01/05 17:10:24.82 JwVNc8eK.net
おくりびと
Apache Foundation

956:デフォルトの名無しさん
17/01/05 17:42:10.67 IruuUmgl.net
>>925
PowerShell でええやん

957:デフォルトの名無しさん
17/01/05 18:24:29.56 YNtiq33O.net
>>925
つJVM

958:デフォルトの名無しさん
17/01/05 19:36:10.57 gkyarhH1.net
次のようなエラーが出たので、コードでtry exceptで無視しようとしたのですが、
あいかわらず、同じエラーが発生します。

Traceback (most recent call last):
File "./ExtractAttachedFilesFromEmail-ver1.pi", line 71, in <module>
main()
File "./ExtractAttachedFilesFromEmail-ver1.pi", line 64, in main
fp.write(part.get_payload(decode=True))
TypeError: argument 1 must be string or buffer, not None



fp = open(os.path.join(opts.directory, filename), 'wb')
try:
fp.write(part.get_payload(decode=True))
except TypeError:
raise
fp.close()


どう対策すればエラーの発生を止められるでしょうか。

959:デフォルトの名無しさん
17/01/05 19:48:50.80 qspWL9xX.net
何これギャグ?

960:デフォルトの名無しさん
17/01/05 19:56:52.83 qmzHQB57.net
exceptの中でraiseしてるから
無視したいんだから例外を出さないコード(何もしないならpass)にしとかないと。
それとファイルのオープン・クローズが同一スコープにあるなら
with openのイディオムを使うのが一般的やね。

でもこの場合はpart.get_payload()を先に検証しとくのが筋

961:デフォルトの名無しさん
17/01/05


962:22:19:41.34 ID:bgD/9Tck.net



963:デフォルトの名無しさん
17/01/05 22:48:32.62 bgD/9Tck.net
>>933
>part.get_payload()を先に検証

partは、次のように生成されています。

import email
(省略)
fp = open(msgfile)
msg = email.message_from_file(fp)
fp.close()

counter = 1
for part in msg.walk():
(省略)

part.get_payload()は、おそらくストリームを返すのだろうと思います。
次のようにして、予め、チェックするとうまくいきました!

payload = part.get_payload(decode=True)
if payload is not None:
with open(os.path.join(opts.directory, filename), 'wb') as fp:
fp.write(payload)


ありがとうございました!!! m(~)m

964:デフォルトの名無しさん
17/01/05 22:53:22.33 bgD/9Tck.net
インデントは、TABで作った方がよいのか、
複数個のスペースで作成した方が良いのか。

catでターミナルで表示させたものをコピーして、
それをテキストエディタに貼りつけると、TABインデントと、スペースインデントの位置がずれていました。

965:デフォルトの名無しさん
17/01/06 01:59:46.43 fOPWTFGM.net
pep8

966:デフォルトの名無しさん
17/01/06 06:53:46.44 KGBbpqvB.net
TABインデントはダメ、初心者とか関係なく修正を求められる
常用していると世界中のPython使いから非難されると言っても過言でないレベル

967:デフォルトの名無しさん
17/01/06 07:04:53.12 dNJWZw2b.net
>>938
> TABインデントはダメ、
なしてどすか。

968:デフォルトの名無しさん
17/01/06 07:20:55.74 KGBbpqvB.net
TAB文字による空白はエディター環境によって表示される幅が変わるので
書いた人が意図したレイアウトが崩れる可能性がある
Pythonはインデント構文だからレイアウトが崩れて見えることは読みやすさを損なう

969:デフォルトの名無しさん
17/01/06 07:27:49.41 W1gobICw.net
>>938 >>940
ありがとうございます。
TABは一押しだけで使えるため便利なんですが、
スペース連打がpythonの標準であるなら、今後はそれに従います。

標準的には、TAB一個の代わりにスペースは何個分が良いんですか?

970:デフォルトの名無しさん
17/01/06 07:30:37.46 jDgzP/rL.net
ググれば分かるようなことを質問してるやつは
プログラマには向いてないね

971:デフォルトの名無しさん
17/01/06 07:31:03.39 l/CEs5x/.net
>>940
インデントが一貫していなきゃそもそもエラーだし、一貫しているなら単に表示がずれるだけ。
4tabが8tabで表示されても「崩れる」とは言わんだろう。
pep8でどう規定しているかは別として。

972:デフォルトの名無しさん
17/01/06 08:23:02.09 W13vyZpn.net
プレーンテキストの編集で
ハードタブ入力することなんてもうないなーって
考えてたら年末にMakefile直接編集してた。

973:デフォルトの名無しさん
17/01/06 08:32:15.60 vWuMUwIp.net
PEP8によると、インデントは必ず空白4つで行うこととのこと

974:デフォルトの名無しさん
17/01/06 08:46:33.19 FKUBdTWh.net
>941
スペース連打しないですむように、タブを押したらスペース4個入力するようにエディタを設定すればいいよ。

975:デフォルトの名無しさん
17/01/06 09:04:44.23 KGBbpqvB.net
>>943
制御構造のインデントレベルの話じゃなくて行を継続している箇所とかも含めてレイアウトと呼んだ
レイアウトのずれはPythonでは死活問題だと思う

976:デフォルトの名無しさん
17/01/06 09:15:56.08 AhEOh5B8.net
最近はGoogle系の馬鹿のせいでスペース2つのスタイルも増えつつある
endや}のある言語ならいいけどPythonでインデント2はやっぱり見辛い

977:デフォルトの名無しさん
17/01/06 12:52:33.14 S2R5Pk4v.net
自分しか読み書きしないからタブ(表示は4スペース)でやってる

978:デフォルトの名無しさん
17/01/06 13:39:44.86 yLKPpVdQ.net
俺は2スペースでやってる
エディタ画面を横分割すると2スペースの方が見やすくない?

979:デフォルトの名無しさん
17/01/06 15:19:52.08 XtKi9eaG.net
>>945
しかしスペ2のソースも多い

980:デフォルトの名無しさん
17/01/06 15:21:39.82 XtKi9eaG.net
>>948
スペ2がそんな見辛いとは思わないけどな

981:デフォルトの名無しさん
17/01/06 15:40:17.22 W13vyZpn.net
2にするとネストを深くしがちになるからね。
Pythonコードぽくなくなる

982:デフォルトの名無しさん
17/01/06 18:14:30.97 kp2I/0bG.net
幅2だとレベルがわかりにくいわ
一度に2レベル上(つまりスペースが4つ減る)まで戻ってたりすると一体どこと同じレベルへ戻ったのかパッと見てわからん

983:デフォルトの名無しさん
17/01/06 18:15:39.84 XtKi9eaG.net
それはダラダラと書いてるからだろ

984:デフォルトの名無しさん
17/01/06 18:18:30.92 kp2I/0bG.net
>>955
否定はしないけど、そう言われてもどうしようもない
俺は絶対に4しか使わないから、人のコードを読むときの話だ

985:デフォルトの名無しさん
17/01/06 18:28:51.73 FLKl51d6.net
tabかスペースかどっちかサポートやめてほしいわ
もう今更なんだろけど

986:デフォルトの名無しさん
17/01/06 18:29:44.12 25Rssu9c.net
pythonのtab禁止の影響で
Cでもtab使うのやめちった

987:デフォルトの名無しさん
17/01/06 18:30:56.57 b8mpsnPl.net
連続した行継続の直後に1レベル戻るとか凶悪
カーソル位置に縦線が欲しくなる

988:デフォルトの名無しさん
17/01/06 19:14:13.05 LmbCCxs/.net
4tab でも 2tab でもどうでもいいんだが here document で凶悪化する

(インデント)hoge = '''
...
%s
...
%s
...
''' % (fuga, hage)

989:デフォルトの名無しさん
17/01/06 20:26:34.73 S2R5Pk4v.net
>>960
見辛いと言う意味なら他の言語でも同じでは?

990:デフォルトの名無しさん
17/01/06 21:00:05.89 l/CEs5x/.net
>>947
タブ表示幅が変わるのが死活問題のわけないだろう。

991:デフォルトの名無しさん
17/01/06 21:58:46.38 vWuMUwIp.net
PEP8に逆らうな��

992:デフォルトの名無しさん
17/01/06 23:26:04.58 KGBbpqvB.net
ソースの可読性は些細な問題だと主張する人であるのなら話が合わないな
タブインデントで読みやすいコードを書けると言っているのならそれはPEP8とは無関係で興味ない
参考として書くと新しいバージョンではインデントにタブとスペースを混ぜるとエラーになる

993:デフォルトの名無しさん
17/01/07 00:09:15.65 bP0cwlRr.net
× ソースの可読性は些細な問題
〇 ソースの可読性にとってタブ幅は些細な問題

994:デフォルトの名無しさん
17/01/07 07:03:14.90 bDXT+9KP.net
tab使うなじゃ駄目なのか?
pep8の通りスペース4つで統一しろ
コーディング規約を守った上での見辛い糞コードは知らん

995:デフォルトの名無しさん
17/01/07 07:20:37.29 xYS1fpbG.net
タブコード4つの猛者はいないの。

996:デフォルトの名無しさん
17/01/07 08:02:38.13 bP0cwlRr.net
pythonやる以上pep8に従え、理由は聞くな、で問題ないな。
わざわざ怪しげな理屈をつけて正当化する必要もない。

997:デフォルトの名無しさん
17/01/07 10:52:04.60 QL5QRg0c.net
まとめると、tab使うな。スペース半角4個を使え。でお?

998:デフォルトの名無しさん
17/01/07 10:52:51.55 72YrLFZp.net
エディタでタブの設定をスペース4個にしとけばええやん

999:デフォルトの名無しさん
17/01/07 11:27:21.42 gdmcm9JP.net
>>964
>参考として書くと新しいバージョンではインデントにタブとスペースを混ぜるとエラーになる

>>967
>タブコード4つの猛者はいないの。

スペース4個とタブ1個の行が混在だとエラーだけど
スペース4個とタブ4個の行が混在しててもエラーにならなかったような

1000:デフォルトの名無しさん
17/01/07 11:30:01.42 QL5QRg0c.net
>>970 >>946
ありがとうございます。

CentOSなんですが、vimを使っています。
なにかtabで4スペース可能にするお勧めのターミナルエディタってなんでしょうか。
nanoとかですか?

1001:デフォルトの名無しさん
17/01/07 11:34:03.90 vy3gmxyW.net
Vim

1002:デフォルトの名無しさん
17/01/07 11:36:44.32 DbRDph3N.net
なんでエディタ変えるんだ?vimrcに設定書くだけでよくね?

1003:デフォルトの名無しさん
17/01/07 11:38:14.32 EceZQ54D.net
Vimしかねーだ�


1004:�



1005:デフォルトの名無しさん
17/01/07 11:42:11.94 XDvKv2Q+.net


Pythonのお勉強 Part52
スレリンク(tech板)

1006:デフォルトの名無しさん
17/01/07 12:50:30.86 QL5QRg0c.net
>>973-975
vimって評判よいんですね。
このまま使います。

tabを4個spaceにする設定も調べたいと思います。
>>974
vimrc

ヒントありがとう。

1007:デフォルトの名無しさん
17/01/07 13:08:30.66 nH9ciZhQ.net
vi利用者多いな

1008:デフォルトの名無しさん
17/01/07 13:09:20.74 72YrLFZp.net
vimとか玄人意識高い系しか使わんだろ

1009:デフォルトの名無しさん
17/01/07 13:16:31.53 ek0FkprX.net
せやな
補完機能ない状態でコーディングなんて非効率すぎてむり

1010:デフォルトの名無しさん
17/01/07 13:21:45.81 gdmcm9JP.net
ブラタッチ出来ない人の方が補間好む気がする

1011:デフォルトの名無しさん
17/01/07 13:44:03.11 2zeXFPoa.net
Pythonはvimだな
カーソルの大移動やインデントの修正が多いし

1012:デフォルトの名無しさん
17/01/07 13:57:36.11 EceZQ54D.net
え、Vimで補完使ってないやついるの?
それは凄い

1013:デフォルトの名無しさん
17/01/07 14:03:16.58 72YrLFZp.net
escキー酷使厨のスレ

1014:デフォルトの名無しさん
17/01/07 15:24:22.77 u7goZcpY.net
え、escキー使ってるやついるの?
それは凄い

1015:デフォルトの名無しさん
17/01/07 15:33:50.17 72YrLFZp.net
えっ

1016:デフォルトの名無しさん
17/01/07 15:47:37.33 Us0KDCcD.net
ふつうは Ctrl-[ をつかうし、真ん中あたりに適当にリマップしてる連中もいる。

1017:デフォルトの名無しさん
17/01/07 15:49:33.43 72YrLFZp.net
(´・ω・`)

1018:デフォルトの名無しさん
17/01/07 16:48:12.49 4jt/Q9EM.net
viでESC多用する香具師は下手くそ

1019:デフォルトの名無しさん
17/01/07 17:10:10.49 72YrLFZp.net
そもそもvi使ってねぇし(´・ω・`)

1020:デフォルトの名無しさん
17/01/07 21:46:46.86 3J98lhrC.net
emacs使いだけど、Python だけはatom

1021:デフォルトの名無しさん
17/01/07 21:51:40.25 +s6ATkRJ.net
Vim使いだけど、PythonだけはPycharmだわ

1022:デフォルトの名無しさん
17/01/07 22:56:53.78 bDXT+9KP.net
ぼくPyscripter

1023:デフォルトの名無しさん
17/01/07 23:59:25.73 CmtQT3Mp.net
僕はsublime text

1024:デフォルトの名無しさん
17/01/08 00:44:51.93 1lmOFmsV.net
俺Visual Studio Code

1025:デフォルトの名無しさん
17/01/08 05:05:37.41 zSFIH0Za.net
vscode rubyだけはatom

1026:デフォルトの名無しさん
17/01/08 06:55:26.87 0mVP2hZ6.net
eric

1027:デフォルトの名無しさん
17/01/08 09:46:28.74 qkk6ZrX+.net
まかーばっかりかよここ.........

1028:デフォルトの名無しさん
17/01/08 10:15:10.96 X8VbXaXD.net
idleじゃダメなの?

1029:デフォルトの名無しさん
17/01/08 10:20:51.19 qkk6ZrX+.net
さすが意識高い系臭むんむんの言語だわ

1030:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch