2016-05-02 15 views
-2

私はPythonには新しく、構文を理解するのが難しいです。Pythonで複数行にわたるファイルの一部を抽出する方法は?

私は新しいファイルにその一部を抽出する必要がある非常に大きなファイルを持っています。これをどうやってやりますか?私は少しの研究をしていましたが、これまでのところ、ファイルの各行を文字列として抽出する必要があると思います。文字列の中から部分文字列を抽出する必要があります。それが正しいかどうかはわかりませんが、どんな指針も大いに感謝しています。例えば

、ファイルは次のようなもの....

Test file number one two three 
test file number two three four 
test file number three four five 

を見ても私には、例えば、各ラインの第三及び第四の単語を抽出する必要があります。

だから、私はあなたの助けを本当に感謝

number one 
number two 
number three 

.....のように見えるように出力が必要になります。私はPython言語にとって非常に新しいですが、完了する必要があるプロジェクトを持っています。事前に感謝します。

ファイルの各行に対して
+0

SOはコード作成サービスではありませんが、私たちは大変努力してくれた人を喜んでサポートします。あなたは何を試しましたか? – Conduit

+0

私がこれまで #!/ユーザー/ binに/のenv pythonの ファイル=オープン( "場所\\ファイル名"、 "R +") sであったすべて= s.replace(「「、 'W') chmod + x code.py – MuhA

答えて

2

lineはあなたが読んでラインを保存する変数であり、[]の数字は(あなたが選択したい言葉を参照してください
print(" ".join(line.split(" ")[2:3]) 

他のほとんどの言語と同様に、Pythonは0から数えます)。単語を追加したい場合は、次のようにします。

print(" ".join(line.split(" ")[2:5]) 

などとなります。ここで

は、私はそれを実装する方法をです:使用してファイルにこのスクリプトの出力を

with open("file.txt", "r") as f: 
    for line in f: 
     print(" ".join(line.split(" ")[2:3]) 

限り、ファイルには、この書き込みが行くように、これを行うための最速の方法は、パイプになり、オペレーティングシステムのシェル:

python3 this_script.py > output.txt 

おかげで、ローマTsegelskyi print()への呼び出しに関する提案について。

+1

'print(" ".join(line.split(" "[2:3])'少し短く書いてください。 –

+0

良い点、これを反映する答えを修正します。 – tobycode

+0

本当にありがとうございました。 – MuhA

関連する問題