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

■ このスレッドは過去ログ倉庫に格納されています
2018/01/01(月) 20:18:42.82ID:iOcRvNll
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その35
http://mevius.5ch.net/test/read.cgi/tech/1496411341/
VIPQ2_EXTDAT: checked:default:1000:512:----: EXT was configured
685デフォルトの名無しさん
垢版 |
2018/03/03(土) 21:34:04.04ID:lxzWoDph
ID:I3KxV3WP
ID:rNdUW0Qr
ID:oz5Ycp/G
ID:+c9NolkC
こいつらは超初心者というよりも只のバカ
2018/03/03(土) 21:36:31.23ID:+c9NolkC
>>685
抜けてるぞ
ID:lxzWoDph
2018/03/03(土) 22:03:43.53ID:Yv39lHPZ
3.6ですがリストのprintで[]やコンマなしで出力する方法はないのですか?
x=[0,1,2]
の時に0 1 2と出力したいです
2018/03/03(土) 22:03:57.32ID:WopWzyYp
ID:I3KxV3WPは初心者じゃないう
それなりにプログラミングが出来る奴だろう
C++との連携、__hash__ 、__eq__を実装する奴はこのスレのレベルを超えているよな
2018/03/03(土) 22:08:14.22ID:kbUiXWHm
>>687
print(‘ ‘ .join(str(s) for s in x))
2018/03/03(土) 22:09:19.84ID:gEtW3Owr
>687
print(*x)
691遊園地
垢版 |
2018/03/03(土) 22:54:31.75ID:9mjwXL/k
□ が インデント

class XXX:
□def __init__(self):
□□print(self.x_Surprised())
□x=[0,1,2]
□@classmethod
□def x_Surprised(self):#x_吃驚
□□return self.x

[print(i) for i in XXX.x_Surprised()]
692遊園地
垢版 |
2018/03/03(土) 23:00:50.92ID:9mjwXL/k
出力結果が違うと言う痛恨の失敗ww
693遊園地
垢版 |
2018/03/03(土) 23:04:30.72ID:9mjwXL/k
まあ、いいや。
メモしとこう。

https://ideone.com/JN2C3u
2018/03/03(土) 23:27:34.60ID:Yv39lHPZ
>>689-691
ありがとうございます
色々方法あるんですね
2018/03/03(土) 23:30:47.43ID:SiBmpxOC
ラズベリーパイ使ってます
Pythonでprint()文5行ぐらいを0.2秒ぐらいずつ出力するプログラムを書いています
IDLEのShellではスクロールして見づらいので、ラズパイに入っているThonnyのShellだといい感じで見られるのですが
もっと全画面表示にしたり 行ごとに色やフォントを変えて見やすくしたいです。

tkinterというのを使えばできるんでしょうか?調べてもGUIの入力の仕方は書いてあっても変数の出力の仕方がわかりません
696遊園地_24
垢版 |
2018/03/04(日) 00:10:14.92ID:5if37KxE
まず
print()5行は

def aaa(??):
sleep(0.2)
[print(i) for i in ??]

コンソール画面については、入るか解らないけど、
fabric

インストール[例]   sudo pip3 install fabric
ラズパイOSは触った事ないので不明


tkinterが動くなら、そっちで表示した方が楽だな。
毎回ウィンド消すのが邪魔くさくなる、けどな。
ショートカットキーが使えるなら、それを利用


スクロールが嫌なら値を配列に突っ込んで、配列を表示な。
697デフォルトの名無しさん
垢版 |
2018/03/04(日) 10:25:14.53ID:/zakn0zk
今年からWinのAnacondaで本格的にPython触り始めたんだけど、Jupyter Notebookがなんで流行っているのかわからない
ブラウザでやりたい人はできるよ!って意味があるだけで、
普通にエディタで書いてコマンドで実行するのが苦にならない人にとって、使うメリットがあるとしたら何だろうか?
698デフォルトの名無しさん
垢版 |
2018/03/04(日) 10:27:17.22ID:DAVLACwj
なんか使いこなしてる感あるやん
2018/03/04(日) 10:51:09.43ID:8KjE9Kl8
>>697
そだねー

リモートの鯖で jupyter notebook しか使えない時ならね
2018/03/04(日) 10:52:43.17ID:8KjE9Kl8
あとは多言語とか markdown 組み合わせてそのまま発表資料作れることとかかなー
701デフォルトの名無しさん
垢版 |
2018/03/04(日) 11:11:49.19ID:NfYAcbTL
コーディングだけならjupyterはやめたほうがいい
エディタとしてはクソ

セル毎に実行できるからデバッグしながらコーディングできるのがメリット
ただ、もともと科学研究での使用を想定しているので、グラフを描いて、そのまま保存できるのが一番のメリット
2018/03/04(日) 11:19:45.98ID:4EUNxouc
>>697
pycharm最強だけど
立ち上げるのめんどうな時があるんだよ、でもIDLEでは役不足なときJupyter notebookが活躍する
matplotlibのインライン表示もできて
pandas のdataflameもhtmlで綺麗に表示されるしセルごとコピーして試行錯誤できるしctrl enterでサクッと実行できて Markdownで文書で説明も一緒に保存できるし !をつかえばshellもつかえるから
2018/03/04(日) 13:04:37.81ID:tnQSriaY
複数のソース同時進行で動作確認しつつ書く時とか楽だからね
他にも便利なことは無数にあるけど使う人にもよるから、
使ってみて合わなけりゃ他にすればいい
704デフォルトの名無しさん
垢版 |
2018/03/04(日) 13:07:12.24ID:/zakn0zk
ありがとう
AnacondaにSpyderというのが入っていて起動したらいい感じなのでしばらくこれメインで使ってみます
2018/03/04(日) 16:00:04.01ID:ewEnZjbB
code使い意外とまだ少ない?
2018/03/04(日) 16:33:18.24ID:bIFflqoZ
業務でVSprofessional使ってるから、家でもcode使わずにVScommunity入れてる
VC++やVC#と同等の強力なデバッガが使えるのは便利
2018/03/04(日) 18:05:35.99ID:AsmaTBX4
>>696
ありがとうございます fabricでカラフルにできました!
tkinterでも出来るならもう一度勉強してきます
2018/03/04(日) 18:16:30.73ID:zoUnaQGz
ここで聞いていいのかわからないけど質問させてください。
非エンジニアですが、pythonを勉強したいと思ってます。
家族共用のパソコンを買い替える予定があるんですが、pythonを扱う上で最低限これくらいのスペックは必要とかありますか?
OSはWindowsで考えてます。
ちなみに、pythonを始める動機としては、税のシミュレーションサイトを作りたいです。
2018/03/04(日) 18:33:03.97ID:fkgoPQSR
Python使うだけならラズパイでも動くよ
2018/03/04(日) 18:58:57.88ID:WjsL7mIB
>>708
Windows7 が動くのならなんでもいい
2018/03/04(日) 19:09:45.24ID:tnQSriaY
なぜそれをpythonで
2018/03/04(日) 19:40:08.84ID:k5/pLUpw
>>711
資産管理と節税対策を可視化したいんだろ。160万Macの中でWin動かせばいいんでないかい
2018/03/04(日) 19:48:46.74ID:ZJt4Uw7t
大抵どの環境でも動く
714遊園地_24
垢版 |
2018/03/04(日) 20:32:42.53ID:5if37KxE
今使ってるpcで公式ドキュメント読んで、
100均でコピー用紙買ってきたら、良いんじゃねえ?

マジレスだと、
今使ってるPCにpython入れて勉強したら?

自分のやりたい事を試して(コピペ実装でも)したら、
どこまで、スペックが必要なのか自ずと解るもんなんだけどなー。

4,5年前にハードオフで購入した、のーと本体1080円+電源540円 合計1620円のPCで十分だな。[ウィンドウズじゃないけどな。] Kona linux 2.3  とかなーw

静的グラフ作成なら必要ないけど、動的グラフなら GPU積んでないとダメだな。
715遊園地_24
垢版 |
2018/03/04(日) 20:39:45.38ID:5if37KxE
webサイトなら、jsで良いと思う。
pythonなら、ボトルとか言うネタフレでも入れとけよ。

今すぐpython入れてボトル拾って来たら
20分もしない内にhello world表示できるな。
2018/03/04(日) 21:31:52.48ID:zoUnaQGz
レスありがとうございます。

>>710>>713-714
あんまスペック必要ないってことで理解しました。
いまのデスクトップを処分して、ノートに買い替えることは確定してるので、せっかくなら不自由しない程度のスペックをと思って質問してみました。
>>711
データ処理的な面で仕事にも活かせそうということと、VBAの次のステップとしてもいいかなーと。
>>715
ネタフレってことは、bottleはあまり評判良くないんですか?
717デフォルトの名無しさん
垢版 |
2018/03/04(日) 22:24:37.53ID:5if37KxE
pythonでwebフレームワークなら、九分九厘とは言わないまでも、
7,8割は Django



話を聞く限りだと、winで業務効率化なら
C#とpython

Microsoft Visual Studio と考えるなら
CPU i5以上[第4世代以降] 4コア メモリ8G
ぐらいだな。

メモリが4gだと ソフト常駐中に がちゃがちゃ っとした時に
不安だな。 と言うかフリーズで再起動必須だぞ。


その他
ノートはグラボついて無い奴が多いからなー。
2018/03/04(日) 23:02:30.41ID:24V4/Iiw
Webサイト作りたいならPHPの方がいいよ
PythonとかRubyとかC#とかでMVCで作るとなると本格的なWebプログラミングになってしまって、
半端な知識でやるとヘタしたら事故って家に警察くるよ
2018/03/04(日) 23:29:33.00ID:zof3jshp
>>702
「役不足」の誤用って未だに有るんだな。
2018/03/05(月) 00:55:00.41ID:U444NXfL
>>717
ありがとうございます。
ミドルスペック程度のものを買っておけば大丈夫そうですね。
グラボは自分の用途的に必要になるかはわかりませんが、将来の拡張性も含めて検討してみます。
>>718
そういった法的なリスクは考慮していませんでした。ありがとうございます。
MWCが何かはイマイチよく分かりませんが...会員機能などは全く想定していないので、指摘されたようなリスクは低いかなと考えています。(的外れだったらスイマセン)

いろいろと教えていただきありがとうございました。
2018/03/05(月) 09:50:43.85ID:9If1UATd
>>717
この流れだと薦めるべきは
jupyter notebook だろ常考
2018/03/05(月) 16:00:23.62ID:62GuhFZ7
開発用PC は、高スペック

CPU はi5、メモリは8GB が最低ライン。
まあ、CPU はi7、メモリは16GB、Windows10 Pro版が無難
2018/03/05(月) 16:56:11.79ID:lJSfSKK/
ストレージはSSDでいいんか?
2018/03/05(月) 19:56:13.88ID:AenKmQiD
>>719
それをいちいち指摘する奴もな
2018/03/05(月) 20:28:52.85ID:Oh+Rb/cP
>>722
お前自身,pythonで何を開発している?
会社の業務でディープラーニングを使った何かとか?
2018/03/05(月) 20:42:42.36ID:SqxdGlWF
>>724
ファビョるなよ。
2018/03/05(月) 20:54:00.97ID:02v5axci
pythonはじめて分かったけど俺がプログラム書く上での一番の障壁はGUIだわ
728遊園地_24
垢版 |
2018/03/05(月) 21:30:40.57ID:WgwF8A3f
高速化と精度向上を専門家に任せて、
画像検出で遊んでるけどな。

エクセルとテキスト操作できて、画像検出のデータ(数値&物質)
やる事なくて、暇すぎ。

てとぷよ理解できるなら、
2DのGUIぐらいなら、なんとでも成るだろ。

業務でディープラーニングやるなら、pythonなんて使わねぇよ。
信頼度の有る。アジュールやlot使うわ。夢見すぎ。
2018/03/05(月) 21:34:23.36ID:CUJxqnH7
Azureってkerasより楽ちんポン?
2018/03/05(月) 21:49:02.79ID:Oh+Rb/cP
>>727
WinならGUI部はC#にやらせて機械学習・データ処理部は現最強処理言語のPythonで
とで良いんじゃないのか。C#とPythonを連携させるライブラリあるだろう
と言っても、俺自身はそんなことはできるレベルにはほど遠いが。
なんたってPy2の勉強コードのprintをpy3のprintで動くように手で一つずつ修正しているレベルだからな。
こんなのは超初心者でもpy3のprintに自動変換するpythonスクリプト書いて
自動変換とかするんだろうが
731遊園地_24
垢版 |
2018/03/05(月) 22:41:07.95ID:WgwF8A3f
>>729
金に糸目をつけなければな。

>>730
ファイル読み込んで、正規表現で加工な。
732デフォルトの名無しさん
垢版 |
2018/03/05(月) 22:43:51.13ID:RAbUoWuy
パイ兄の性器加工したらパイさんになるって事やな
2018/03/05(月) 22:50:57.34ID:Oh+Rb/cP
>>731
それ、どんなコードにすれば
py2のprintコードをpy3で動くコードに変換出来るんだ?
>>728のようなことを書き込む奴なら簡単に出来るんだろうが
734遊園地_24
垢版 |
2018/03/05(月) 23:55:17.31ID:WgwF8A3f
誰が全部しろって言ったんだよ。自動変換できなかった部分を加工しろ
って事だな。

公式ぐらい読んでから書き込めよ

26.7. 2to3 - Python 2 から 3 への自動コード変換
https://docs.python.jp/3/library/2to3.html
735遊園地-24
垢版 |
2018/03/06(火) 00:13:29.13ID:UvYphTrh
知らなかったの?
736遊園地-24
垢版 |
2018/03/06(火) 00:22:33.41ID:UvYphTrh
過去スレに
「自分より優秀な奴が他に実装してない」とか、「自分が初めて考えた。」
などと、驕るな。と、曖昧に書いてるだろ。


ggらずに考えも推測もせずに、手打ちで書き直してるのが一番の問題だけどなww
2018/03/06(火) 00:36:32.26ID:eAtg39Ci
>>734
こんな便利なのを提供していたのか、もっと早くきいとけばよかったよ,orz
イライラしながら手打ちで()をいれてたよ
こんなのがあるならPythonのIDEには1発変換機能が装着されているんだろうな
2018/03/07(水) 00:49:40.75ID:+FgUTbHT
クラスからインスタンス作る際に
引数をリストで入れることできる?

例えば

class Person:
def __init__(self, name, age):
print '[Person.__init__]'
self.name = name
self.age = age
def showinfo(self):
print '%s (%d)' % (self.name, self.age)

p1 = Person('Ichiro Suzuki', 37)

ここで'Ichiro Suzuki', 37をリストの変数名はできない?
2018/03/07(水) 01:03:13.75ID:+FgUTbHT
>>738
 自己レス
 インデントなくなってたすまぬ
2018/03/07(水) 02:29:07.94ID:0HAN7POC
stat = ["Ichiro Suzuki",37]
pi=Person(*stat)
2018/03/07(水) 08:28:15.65ID:S7SOUfbr
python 3のIDLEで()や♯をSHIFTキーを押さずに簡単に入力する方法ってありませんか?

気持ちよく文字を打っているときに()や#で毎回止まっちゃって気分悪くて…
2018/03/07(水) 09:22:54.07ID:73e6LWFm
>>741
どんな操作で入力できるのが理想なの?
2018/03/07(水) 09:25:59.85ID:S7SOUfbr
>>742
kとかtとかgとかみたいに、一つのキーを押して()って出したいです
()や#が入るとブラインドタッチ出来なくて…
2018/03/07(水) 09:39:20.43ID:Bu0xzM6t
>>741
なんかかなりPython出来る感じだな
そんな奴は自分で特定のソフトでのキー入力を,#はF1キー、(はF2キーとかにするPythonプログラムを作って
常駐させれば良いんじゃない? これなら他のエディタでも出来るようになる
俺はどうすれば実現できるか分からんが、分からない部分はこのスレやPythonクダスレで質問すれば
アドバイス貰えるだろう。
2018/03/07(水) 09:40:32.70ID:Bu0xzM6t
Pythonクダスレでなく勉強スレで だな
2018/03/07(水) 11:14:00.28ID:73e6LWFm
>>743
Shiftに慣れるしかないよ
左小指でShiftを押すのがつらいのなら、キーを入れ替えるフリーソフトで
ShiftとCapsLockを入れ替えれば少しは楽になるかもね
2018/03/07(水) 13:53:19.55ID:SxtyIWZu
変な癖を着けるよりタイピングの練習をしろ
まともにプログラム書ける人に記号や数字のブラインドタッチができない奴なんかいないぞ
2018/03/07(水) 20:00:30.28ID:SVUFy878
俺はPC歴20年だけどアルファベットはブラインドタッチできるけど数字は若干怪しいw
749デフォルトの名無しさん
垢版 |
2018/03/07(水) 20:43:06.22ID:rqe653kl
正直、('hello')あたりはだいぶあやしい
英語キーボードに切り替えようかと考えるけど、逆にそれに慣れてしまった後が怖い
2018/03/07(水) 20:50:41.48ID:n5pGfiL2
もはやPCの初心者ですね
次の方Pythonの話題限定でどうぞ
751デフォルトの名無しさん
垢版 |
2018/03/07(水) 20:50:57.14ID:fiBk/l1y
>>749
慣れる前に挫折するから安心しろw
英語配列の()は薬指と小指だぜ?聞いただけで無理だろ?w
2018/03/07(水) 21:27:29.92ID:+FgUTbHT
>>740
ありがと
うまくできた

試しに辞書のなかにリストいれて 辞書のキーからインスタンス
つくったら、できた。 この言語、ライブラリ含め柔軟性がエグイな
753デフォルトの名無しさん
垢版 |
2018/03/07(水) 21:46:51.43ID:rqe653kl
>>751
最上段右小指つかわん
2018/03/07(水) 22:30:37.15ID:n5pGfiL2
タッチタイピングの話はあまりにも低レベルなのでやめましょう
そもそもPythonとは関係ないのでスレ違いです
755デフォルトの名無しさん
垢版 |
2018/03/07(水) 22:34:55.45ID:fiBk/l1y
必死で話をそらそうとするブラインドタッチできない自称上級者がいるスレはここですか?w
2018/03/07(水) 22:37:10.13ID:4hpZk16v
たしかに。寿司内で証明するべきだな
757デフォルトの名無しさん
垢版 |
2018/03/07(水) 22:54:29.90ID:rqe653kl
UIは大事だよ
2018/03/08(木) 00:38:24.07ID:lZQLIDsd
思念した脳波スペクトルを検出して、文字入力できるpythonのコード、誰か書いてあげて
2018/03/08(木) 03:10:58.82ID:E3emjgTV
python 3.6.3 windows 10環境において、
pyinstallerをpipでインストールした状態でOpencv3モジュールを使ったスクリプトをexe化したいんですが、きちんとコマンドプロンプトでスクリプトのあるディレクトリに飛んで
pyinstaller なんとか.py
みたいに打っても、

>>>内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません

と出てなにもしてくれません
どうすれば、exe化出来ますか?
2018/03/08(木) 06:42:28.96ID:BqSevK/d
>pyinstaller なんとか.py
pyinstaller は、パス無しのコマンド名で、
このコマンド名の実行ファイルを探すには、探す順序がある。

このコマンド名の実行ファイルが、
探索パス(ユーザー環境変数PATH)に入っていれば探索できる

入っていなくても、コマンド名の実行ファイルを絶対パスで書けば、動く

絶対パス付きpyinstaller(拡張子も付ける) なんとか.py

「windows コマンド 検索 順序」で検索!
761デフォルトの名無しさん
垢版 |
2018/03/08(木) 10:47:57.81ID:HtPqmhf6
>>730
C++で書こう。
762デフォルトの名無しさん
垢版 |
2018/03/08(木) 10:48:43.59ID:ue18PqKi
wxWidgets と wxPython の相性いいね
2018/03/08(木) 11:31:53.63ID:E3emjgTV
>>760
ありがとうございます

絶対パスを取ってきてやってみたのですが、絶対パスが認識されていませんって出て何もできないです…
訳ワカメ
764デフォルトの名無しさん
垢版 |
2018/03/08(木) 15:04:35.03ID:57cll93c
ロジックサマナーの筒の中のボールって問題で

a = int(input())
b = list(input())
#print(b)
c = []
for i in range(a):
j = int(i)
if b[j] == "L":
c.insert(0,i + 1)
elif b[j] == "R":
c.append(i + 1)
#print(c)
d = ""
for x in c:
d += str(x)
print(d)

試行錯誤してこんなの書いてみたのですが
これだと答えが

42135

ってなるんですが正解は

4 2 1 3 5

ってしないといけないみたいなんですがどうすればいいですか?
765デフォルトの名無しさん
垢版 |
2018/03/08(木) 15:09:01.29ID:57cll93c
すいません
>>764の問題は

あなたは筒にボールを収納しています。N 個のボールを筒に入れていきます。筒には左右どちらからでもボールを入れることができ、筒にはちょうど N 個のボールを入れることが出来ます。

筒に i 回目に入れたボールには i という番号を振ります。

それぞれのボールを右から入れたか、左から入れたかが与えられる時、筒に入っているボールの番号を左から順に出力するプログラムをつくりましょう。

というもので

入力される値は

5
LLRLR

です
766デフォルトの名無しさん
垢版 |
2018/03/08(木) 15:44:13.25ID:57cll93c
インデントが消えてましたすいません

a = int(input())
b = list(input())
#print(b)
c = []
for i in range(a):
____j = int(i)
____if b[j] == "L":
________c.insert(0,i + 1)
____elif b[j] == "R":
________c.append(i + 1)
#print(c)
d = ""
for x in c:
____d += str(x)
print(d)
2018/03/08(木) 16:56:22.26ID:G4fiO8Mm
しょうもない
' '.join()でもやっとけ
たぶんエラーになるけどそのくらい自力で解決しろ
2018/03/08(木) 17:07:07.32ID:PUNA7seI
問題文の意味が全くわからん
2018/03/08(木) 17:54:28.22ID:XBRt2eF2
print(*c)
で、スペース区切りでリストcが表示されるよ

あと、リストの両端から要素を追加するなら、リストでなくて、dequeを使うべき。collectionsライブラリに入ってる。
N回追加するとして、リストだと計算量がO(N^2)、dequeならO(N)で済む
2018/03/08(木) 18:44:19.26ID:E3emjgTV
>>760
環境変数に絶対パスを突っ込んでもダメでした
もうだめだー
他のモジュール探してきます
2018/03/08(木) 19:33:10.41ID:fVm8GBjs
>>768
この場合は問題文はの理解はどうでも良いんだよ
単に、正解の出力フォーマットにする仕方が分からんと言うだけ
2018/03/08(木) 19:42:55.17ID:1rKiswv/
>>769
有難うございます
早速試してみます
2018/03/09(金) 00:18:12.93ID:2PlJUe+0
>>770
もう一回調べ直してやってみたら無事に出来ました
半日ずっと悩んでた…
初心者にしてはそこそこのコード量を書いたと思うので、完成してめちゃくちゃスッキリです

ありがとうございました
2018/03/09(金) 18:23:05.36ID:9PFeid8J
Python 3.4.2
IDLE 3.4.2

>>> a = 0
>>> if a == 0:
print("0ですが何か?")
print("0ではないです")
SyntaxError: invalid syntax

なぜかシンタクス・エラー。
このコードに何か問題がありますか?
教材にこういう書き方が載っていて。
もちろんこうすればいいんですが。

>>> a = 0
>>> if a == 0:
print("0ですが何か?")
else:
print("0ではないです")

0ですが何か?
775774
垢版 |
2018/03/09(金) 18:25:09.02ID:9PFeid8J
わぁ、インデントに失敗。
シンタクス・エラーが出たコードの
2つめのprint文はインデントしてないです。
776デフォルトの名無しさん
垢版 |
2018/03/09(金) 18:32:28.71ID:pN88KEeM
print("0で" + ("すが何か?" if a == 0 else "はないです"))
777デフォルトの名無しさん
垢版 |
2018/03/09(金) 18:33:24.64ID:pN88KEeM
>>775
改行が足りないだけじゃね
2018/03/09(金) 18:38:40.01ID:TIzFZI0J
他言語の
if (a == 0) {
print("0ですが何か?");
}
print("0ではないです");
みたいなことしたいならpythonでは}の替わりに空行必要だろif文そこで終わりなんだから
2018/03/09(金) 20:56:35.87ID:9i/ypX3d
改行なしで一行に何万もの文字がつながってしまってるテキストに
固定桁位置(例えば100)ごとに改行を入れたいのですが
Pythonだとどんなアプローチがありますかね

自分の知識だと、全部をリストに読み込んでから
こんなアルゴリズムで改行を挿入していく感じになりますが、いかにも遅そうで・・・
for i in range(100,ファイルサイズ,100):
....リスト[i] = '\n'
2018/03/09(金) 21:03:45.39ID:PDjaIyJx
何万文字だったらすぐに終わるでしょ
試してないけど
約40万文字のcsvファイルの書き直しでも、
すぐに終わった記憶がある
2018/03/09(金) 21:11:11.46ID:7JkYQc+0
>779
そのやり方だと100文字目毎に改行が挿入されるのでなく
100文字目毎に1文字分のデータが改行に上書きされていくよ

文字列に読み込んだあと、
結果を100文字ごとにリストresultに追加していって、あとで'\n'.join(result)して連結したらいいんじゃないかな

src = ファイル読み込む
result =[]
for i in range(0, len(src), 100):
....result.append(src[i:i+100])
final = '\n'.join(result)

src[i:i+100]のところは、最後にout of range エラー出ないように微修正が必要かも。
2018/03/09(金) 21:35:31.43ID:Ohyjj+7n
>>779
対象がファイルでスケーラビリティも考慮するなら
テキストIOはバイト数ではなく文字数で読み出せるので
普通にread(桁数)とかでも。細粒度でもバッファが有るし

等幅にもしたいとかだと単純にはいかなそうだけど
2018/03/09(金) 21:55:08.94ID:9i/ypX3d
ありがとうございます
リストに[i]ってして書き込むと挿入じゃなく上書きなんですね
ファイルをぶっ壊すところでした
>>781,782の両方試してみます
784デフォルトの名無しさん
垢版 |
2018/03/09(金) 21:57:08.86ID:7BdIhTLZ
プログラムを実行してCPUが1つも使用率100%にならないのに時間がかかるのはなぜでしょうか
2018/03/09(金) 21:58:20.51ID:D+XJ/Fb8
IOかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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