2017-01-13 7 views
-2

私は、txtファイルを読み込み、txtファイルを特定の設定に再フォーマットするスクリプトをPythonで作成することになっています。Pythonでtxtファイルの内容を整理する方法

path = '/Users/ps/desktop/sI8.xyz2.txt' 
file = open (path ,'r') 
list = file.readline() 
stuff = str.split(list) 
stuff[2] = float(stuff[2]) 
stuff[1] = float(stuff[1]) 
stuff[3] = float(stuff[3]) 
print stuff 

私の出力は、これまでのところ、このよう

['C', 5.742023, 0.193241, 2.874091] 

に見えるので、私は何をする必要があるかそう、左寄せ「C」と私の3つのfloat値の上に新しい行を作成し、カウンターを追加しています1番のセンターが正当化され、3つのフロートが下に表示されます。どのような提案も大変ありがとうと思います。私はプログラミングの初心者です。これが、これらのツールの問題を解決するための最初の試みです。

生の入力

C  5.7420230 0.1932410 2.8740910 

所望の出力

C    1 
5.7420230 0.1932410 2.8740910 
+0

そうはtxtファイル内の行がどのように見えるかと私は先に行って、私が編集した@hansaplastまさにその行の最終結果が – hansaplast

+0

のように見える必要があるだろうか投稿してください。元の投稿ので、私は何を必要としているものが表示されます下部に。これは約2,000の単なる1行であることに留意してください。 – 760psharp

答えて

0

が、これはあなたが探しているものですだけでなく

import csv 
with open('C:\Users\shmathew\Desktop\Sample\inv.txt') as csvfile: 
readCSV = csv.reader(csvfile, delimiter=',') 
Linenum =0 
for row in readCSV: 
    print row[0] ,'\t', Linenum 
    print row[1] , row[2],row[3] 
    Linenum=Linenum+1  

出力することを解決しようとするのだろうか?

path = 'sI8.xyz2.txt' 

file = open (path ,'r') 
lists = file.readlines() 

i = 1 
for list in lists: 
    letter, f1, f2, f3 = str.split(list) 

    print letter + '\t' + str(i) 
    print f1+ '\t' +f2+ '\t' +f3 
    print 

    i+=1 

file.close() 

出力:

C  1 
1.742023  0.193241  2.8740910 

D  2 
2.742023  0.193241  2.8740911 

E  3 
3.742023  0.193241  2.8740912 

F  4 
4.742023  0.193241  2.8740913 
+0

本当にありがとう、これは正直に私を助けてくれました! – 760psharp

0

これを試してみてください。私はあなたが求めている列の配置についてはわかりません。

'C'  0 
5.742023 0.193241 2.8740910 
'D'  1 
5.742023 0.193241 2.8740911 
'E'  2 
5.742023 0.193241 2.8740912 
'FGGG' 3 
5.742023 0.193241 2.8740913 
+0

フィードバックいただきありがとうございます、私はあなたの助けに感謝します! – 760psharp

関連する問題