私は完全なPython noobです。ファイルの各行の先頭から2文字を削除するにはどうすればよいですか?あなたは良いスタートを切った行の先頭から2文字を削除するには
答えて
#!/Python26/
import re
f = open('M:/file.txt')
lines=f.readlines()
i=0;
for line in lines:
line = line.strip()
#do something here
初心者レベルの説明のための質問*と*の文脈で答えを提供するための+1。 – mhawke
line = line[2:]
String slicingお手伝いを致します:::
>>> a="Some very long string"
>>> a[2:]
'me very long string'
ジャストラインを使用して、[2]私はこのような何かをしようとしていました。あなたのループでこれを試してみてください:
for line in lines:
line = line[2:]
# do something here
[2:]「slice」構文が、それは基本的に私には終わり以来、(最後にインデックス2から始まり、続けてこのシーケンスの一部を与える」と言うと呼ばれていますポイント)がコロンの後に指定されました
代わりにforループを使用するのでは、あなたがAAリストの内包と幸せになるかもしれません:。ただ、好奇心など
[line[2:] for line in lines]
、をチェックしますかunixツール。
$ cut -c2- filename
-cのスライシング構文は、pythonの構文と非常によく似ています。
だけヒントとして、あなたは
for line in open('M:/file.txt'):
line = line[2:]
にあなたのプログラムを短縮することができますし、あまりにも行番号を運ぶために必要がある場合は、修正したい場合は
for i, line in enumerate(open('M:/file.txt.')):
line = line[2:]
for line in open("file"):
print line[2:]
を使用しますファイルの内容は、文字列を処理するだけでなく、fileinput
のinplace
パラメータを試してください:
# strip_2_chars.py
import fileinput
for line in fileinput.input(inplace=1):
print line[2:]
すると、コマンドラインで:
python strip_2_chars.py m:\file.txt
あなたは、Pythonは文字列に対処するためのいくつかの素晴らしい方法があります見つけることができます。チェックアウトしたい他の便利な文字列メソッドは、split()、replace()、startswith()/ endswith()などです。
間の微妙な、まだ重要な違いがあることを知って興味深いものがあります
file = open(filename)
lines = file.readlines()
for line in lines:
do something
と
file = open(filename)
for line in file:
do something
(readlines
付き)最初のソリューションは、全体の内容をロードしますメモリにファイルを格納し、(文字列の)pythonリストを返します。一方、第2の解決策は、iterator
と呼ばれるものを利用しています。実際には、必要に応じてファイル内のポインタを移動し、文字列を返します。これは重要な利点があります:ファイルがメモリにロードされていません。小さなファイルの場合は、どちらの方法もOKです。しかし、ファイルごとに行単位でしか作業しない限り、イテレータの動作を直接使用することをお勧めします。
だから私のソリューションは、次のようになります。
infile = open(filename)
outfile = open("%s.new" % filename, "w")
for line in infile:
outfile.write(line[2:])
infile.close()
outfile.close()
は、そういえば:それは(Latin-1のエンコードなど)非ASCIIファイルの場合は、codecs.openを使用することを検討してください。それ以外の場合は、誤って半角でマルチバイト文字を切り捨てる可能性があります)
しかし、Pythonを必要としない場合は、ファイルから最初の2文字を切り抜くだけです、それを行うための最も効率的な方法は、KCHの提案であるとcut
を使用します。私はいつもcygwinは私のLinux以外のツゲにインストールされている間に合わせと、ファイル操作のこれらの種類の
cat filename | cut -d2- > newfile
を。しかし、Cygwin iircよりも速く実行するこれらのツール用のWindowsバイナリがあると思います。
あなたはPythonを学んでいるので、Pythonで提供されているツール(スライス、分割、置き換え、その他すべてが言及されています)を考えれば、正規表現が過度に使用されていることがわかります。したがって、あなたの例の冒頭にある
import re
は、厳密に必要な場合としない場合があります。
- 1. R:文字列の先頭から先頭のゼロを削除する
- 2. 文字列の書式設定、先頭の文字の削除
- 3. XML文書から先頭の空白を削除する
- 4. ANT:文字列から先頭と末尾の空白を削除する
- 5. 文字列の先頭からPHP配列の暗黙文字を削除するには
- 6. 長い(チャット)になると文字列の先頭から削除
- 7. 文字列の先頭の空白を削除します。
- 8. PHPで文字列の先頭と末尾からタグを削除します
- 9. 削除テキストの先頭からの行または
- 10. 数字の文字列の先頭にゼロを削除するVBA
- 11. 文字列の先頭から空白を削除するにはどうすればよいですか?
- 12. 文字列の先頭から「 」を削除するにはどうすればよいですか?
- 13. バッチファイルを作成して数字の先頭から「tel:」を削除する
- 14. どのようにPHPファイルの先頭からスペースを削除するには?
- 15. Java文字列から行末文字を削除する
- 16. 文字列内の先頭と末尾の括弧を削除します。
- 17. グループの先頭文字
- 18. xml要素の先頭文字を大文字にする
- 19. トリム文字列ですが、先頭から削除されたスペースの数を返します
- 20. 削除するEmacsの行の先頭に4つの空白を取り除く(字下げしない)
- 21. Pythonでファイル内のすべての文字列の先頭にある空白を削除しますか?
- 22. 文字列の先頭からn文字を最後に移動
- 23. mysql:フィールドの先頭または末尾にある文字を削除する方法
- 24. 文字列の先頭から文字を切り取る方法。 Android
- 25. php CSVから先行ゼロを削除するには?
- 26. 文字列から大文字小文字を削除する
- 27. クエリ文字列から値を削除するパート2
- 28. すべてのXML値から先頭/末尾の空白を削除する
- 29. 文字列の先頭から検索します。 jQueryのモバイル
- 30. SMARTY:Smartyテンプレートの文字列の先頭または末尾の空白を削除しますか?
チュートリアル(http://docs.python.org/tutorial/)をお読みください。あなたが探していたのは導入の頃です(「文字列」を参照)。 – hop