如何在python中重新组织txt文件的内容

时间:2017-01-13 17:15:50

标签: python

我的任务是在python中创建一个脚本,该脚本可以读取txt文件并将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'左对齐并添加一个计数器,因此数字1中心对齐并显示下面的三个浮点数。任何建议将不胜感激,我是编程新手,这是我第一次尝试解决这些工具的问题。

原始输入

C        5.7420230    0.1932410    2.8740910

期望的输出

C             1
5.7420230    0.1932410    2.8740910

2 个答案:

答案 0 :(得分: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       

输出

'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

答案 1 :(得分:0)

这是你在找什么?

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