2017-12-15 34 views
-2

Pythonを使用してテキストファイルの書式設定を行う必要があります。私は、シリアルポートからのデータを1つのファイルにまとめて、1つのキャラクタに別のキャラクタを持っています。(何かわからない、ファイル内の多くの文字列があるだろう)、Pythonのテキストファイルの書式設定

  1. 検索文字列int型のファイル:私は、ファイル内のテキストを検索および置換する方法を知っているが、私はこのような何かをする必要があります
  2. この文字列の後に空白(または別の文字)を追加するように設定します。私はファイル内のカーソル位置を操作する方法を見つけることができません。

ファイル内で見つかった文字列の位置を取得するにはどうすればよいですか?

例えば、ファイル内のデータは、このようなものです:。。

(これは基本的にはシリアルポートから進データが、ファイルに保存する前に文字列に変換し、このデータは単なるテキストでファイル内だから可能性また、内部の "世界こんにちは" のようなものに、この変換する方法

00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD02030を00100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C

私は、(それはデバイスアドレスである)「0103」から始まる部分を見つけたいし、「\ n」は「0103」の前を入れ、その後、次の4つの文字の後に「これはデバイスだった別のスペースやテキストを置きますナンバーワン ":この中

000000 0103 0001000151CD0203000100015D1E00000406001000545E5C000000 0103「これはデバイス番号 一つであった」0001000151CD0203000100015D1E00000406001000545E5C000000 0103「この デバイス番号 一つであった」0001000151CD0203000100015D1E00000406001000545E5C000000 0103「この デバイス番号 一つであった」0001000151CD0203000100015D1E00000406001000545E5C000000 0103" この「この デバイス番号 でした」 はデバイス番号 1「0001000151CD0203000100015D1E00000406001000545E5C000000 0103」であった。この はデバイス番号 1「0001000151CD0203000100015D1E00000406001000545E5C000000 0103」であった。この デました副番号 1「0001000151CD0203000100015D1E00000406001000545E5C000000 0103」この は、プログラム全体が目的のログ記録のModbus RTUラインを聴くためであるデバイス番号1」0001000151CD0203000100015D1E00000406001000545E5C

ました。

+3

私はすべてを読んで、置き換えて書き戻します。またはファイルが大きすぎますか? – Matthias

+0

おそらくそれは良い方法です。私のファイルが大きいかどうかわからない、それは私が記録する送信量に依存します。それでも私はデータから見つかった文字列からn個の文字を前方にナビゲートする方法がわかりません – cwanish

答えて

0
 

def adjustString(deviceNumber): 
    newData = str.replace(data, deviceNumber, '\n' + deviceNumber + ' this was device number one') 
    return newData 

with open('data.txt', 'r') as myfile: 
    data=myfile.read().replace('\n', '') 

output = adjustString('0103') 



これで、必要に応じて新しい文字列をファイルに書き込むことができます。

 

with open('data.txt') as f: 
    f.write(output) 

+0

chumbalooありがとうございます:) ファイル内に文字列を見つけて4つの文字をさらに移動し(4つの元の文字をファイルに残す)、後にテキストを入力しますか? – cwanish

+0

こんにちは、それはstr.replace関数の機能です。これは、deviceNumberの上の例で文字列の一致を見つけてから、新しい行を追加し、4文字を元の4文字に置き換えてからテキストを追加します)。 str.replace関数で、所望の出力。 もっと上品なことをしたいのであれば、pythonのreモジュールを見てください。 これが役に立った場合は、回答を受け入れて、喜んで助けてください:) – chumbaloo

+0

あなたは正しいです... :) ありがとう – cwanish

関連する問題