2017-03-11 4 views
0

私はの後にと表示されるファイルでテキストを見つけるためにPythonを取得しようとしています。例えば、使い慣れた "sources.list"。私はテキスト "deb"のすべてのインスタンスの後に同じ行のすべてを取得したい。私のラズベリーパイの「のsources.list」を取る:Python //与えられた入力に続く行から読み取る

deb [link] 

# Uncomment line below then 'apt-get update' to enable 'apt-get source' 
#deb-src [link] jessie main contrib non-free rpi 

deb [link] jessie main 

deb [link] oldstable main 

は今、私は「DEB」の各インスタンスの後に表示されるすべてのものを取得し、別のファイルにそれを固執したいです。それはPythonで可能ですか?

+1

'grep'、' awk'、 'sed'、または' perl' ? – Kevin

答えて

0

まず第一に、グラッツ、あなたは私が笑このアカウントを作った理由は、第二

は、あなたが私に似ている、あなたは、あなたのpython 3(0.6)を使用しているPythonのリリースをFRONTLINE想定している

文字列で特定の取得

はI'maが速いこれを行うと、あなたは残りの部分を把握しましょう、Pythonで非常によく扱わものです(あなたのためだけではなく、私のため。)

Pythonの汚れ構文は、物事を可能にかなり一般的であると同時にb信じられないほど具体的です。これを行うにはいくつかの方法がありますが、あなたの特定の例では、長さや文字の長さやキャラクタメイクの変化にもかかわらず、スペースを使って結果を分離するスペースメソッドを使用します。

StringYouWantToParse = "deb [link] jessie deb [link] oldstable" 

文字列内のスペースに注意してください。あなたが投稿した内容に基づいて、リストからそれらをすべて抽出した後の結末となる文字列の正確な例です。

_________________________________________ 
| Dr.w0bb13z Rx# 30041995000CID-3340R1 | 
|_________________________________________| 
| IsolatedResults = ["",""]    | 
|           | 
| cntr =  0       | 
| space_cntr = 0       | 
|           | 
| for char in StringYouWantToParse:  | 
| |         | 
| |if char is ' ':      | 
|  |space_cntr += 1     | 
|  |         | 
|  |if (space_cntr % 3) is 0:  | 
|   cntr += 1      | 
| else:         | 
|  IsolatedResults[cntr] += char  | 
l_________________________________________l 

(PS毎日武 それらの3を取る:このコードは、手のスクリプトで、私はどのような方法でこれをテストしていない。しかし、その単純な性質のために、私は再びそれがうまくいくかなり確信している、しかし。私はすべての楽しみを持たせてはいけません。あなたのコード作成能力はあなたの本当の欲求と直接関係しています。)

+0

トピック以外の質問には回答しないでください。 – DavidPostill

+0

ああ私はGoogleからここに来ました。 YAH!ライド・モンタウ! (m0o) –

関連する問題