私は完全な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. 削除文字列「foo」と先頭と
- 4. SQLの文字列の先頭から文字を削除します
- 5. REGEXPヘルプ文字を削除するヘルプ||先頭の数字|| = sign
- 6. 文字列の書式設定、先頭の文字の削除
- 7. awkで行の先頭にある特定の文字を削除する
- 8. XML文書から先頭の空白を削除する
- 9. 文字列の先頭に数字以外の文字を削除します
- 10. 先頭の文字を削除する正しい方法
- 11. ANT:文字列から先頭と末尾の空白を削除する
- 12. 文字列の先頭からPHP配列の暗黙文字を削除するには
- 13. 長い(チャット)になると文字列の先頭から削除
- 14. 文字列の先頭と末尾にある文字を削除せずに、文字列から特定の文字を削除します。
- 15. 先頭と末尾を削除する<br>文字列から
- 16. 文字列の先頭の空白を削除します。
- 17. トレースバックの先頭から複数の行を削除します
- 18. 削除テキストの先頭からの行または
- 19. PHPで文字列の先頭と末尾からタグを削除します
- 20. ファイルの行の先頭にある数字を削除するには
- 21. ファイル名の先頭から4文字と13文字の文字列を削除します
- 22. 数字の文字列の先頭にゼロを削除するVBA
- 23. 文字列の先頭から「 」を削除するにはどうすればよいですか?
- 24. 文字列の先頭から空白を削除するにはどうすればよいですか?
- 25. 行の先頭からコロン正規表現(notepad ++)への削除
- 26. 文字列の先頭と文字列の終わりから一重引用符を削除します。
- 27. バッチファイルを作成して数字の先頭から「tel:」を削除する
- 28. は、先頭の文字
- 29. ファイルの先頭に空白行を削除するC#
- 30. 文字列の先頭を無視して重複を削除する
チュートリアル(http://docs.python.org/tutorial/)をお読みください。あなたが探していたのは導入の頃です(「文字列」を参照)。 – hop