- ベストアンサー
Pythonでの文字列の操作
- Pythonを使って文字列の操作を行いたい場合、特定の文字列を抽出したり、文字列を変更したりする必要があります。
- 例えば、特定の文字列を抽出する場合は、文字列の中から必要な部分を切り出すことができます。
- また、文字列の一部を変更したい場合は、文字列の一部を置換することで変更することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>「Pythonの勉強をすること」 ということなので。 常套手段は、次のような流れのものです。 (1) 1行読み込む (2) (1)の行を加工する (3) (2)で加工した文字列を書き出す (4) 以上(1)~(3) をファイル全部に対して繰り返す (1),(3),(4)については、チュートリアルで勉強できます。 http://docs.python.jp/2.7/tutorial/ http://docs.python.jp/3.3/tutorial/ (2)について、今回は特定のパターンでの変換となるので、正規表現を使った置換が便利でしょう。 http://docs.python.jp/2/howto/regex.html http://docs.python.jp/3.3/howto/regex.html > いろいろ調べてもなかなか実現できません。 どんなことをして、どんな風に「実現できません」だったのでしょう? 原因を調査して対策を考える、というのは、プログラミングの基本です。 Pythonの勉強が目的ならば、この解析もきっちりとやりましょう。 例えば、上記の流れでも、(1)~(4)のそれぞれに「うまくいかない場合」が存在します。 (1)が失敗しているのに、(2)を変更しても無意味です。 > 「ほかの言語のほうが書きやすい」 例えば、「パターンマッチによる置換」ができるテキストエディタでできます。 # Windowsのメモ長等の一部の低機能なもの以外なら、大抵のものが該当します 数ファイルだったら、プログラム作っている間に処理が終了します。 例えば、UNIX系に標準のsedコマンドを使えば、1行で書けます。 ファイルが大量にあっても、シェルスクリプトやバッチファイルの繰り返し機能(for 等)を使えば簡単です。 ※ 別解 import os os.system(r"sed 's/ \([0-9]*\):[0-9][0-9]:[0-9]*\.[0-9]*/|\1/' infile > outfile") sedコマンドが使える環境限定
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
確認だけど.... Python でないといけない理由ってなに?
補足
はい、 一応目的は「このデータを整形すること」と、「Pythonの勉強をすること」なので、、、 「ほかの言語のほうが書きやすい」という意見があればごもっともですが、できればPythonで書きたいのです。
お礼
ありがとうございました! >(2) (1)の行を加工する の部分でつまずいていたのですが無事解決しました。 別解の部分では、osパッケージをインポートしてlinuxコマンドが呼び出せることすら知りませんでした、、、 もっと勉強します。