我是Python和stackoverflow的新手:)。我有一个txt文件,需要从中打印。这是一个名为DOB的txt文件,具有以下信息:
Orville Wright 21 July 1988
Rogelio Holloway 13 September 1988
Marjorie Figueroa 9 October 1988
Debra Garner 7 February 1988
我需要打印并显示如下列表:
1. Orville Wright
2. Regelio Holloway
3. ......
列表项
1. 21 July 1988
2. 13 September 1988
3. .......
下面的代码两次打开txt文件,但我认为这无效。救命!
dob = open('DOB.txt', 'r')
for i, line in enumerate(dob, 1):
name = line.split()
name_surname = str(i) + "." + " " + name[0] + " " + name[1]
print(name_surname)
dob = open('DOB.txt', 'r')
for i, line in enumerate(dob, 1):
date = line.split()
day_to_year = str(i) + "." + " " + date[2] + " " + date[3] + " " + date[4]
print(day_to_year)
dob.close()
答案 0 :(得分:0)
调用read()会读取整个文件,并将读取的光标留在文件的末尾(没有其他要读取的内容)。
一旦读取了文件,则可以使用read()使用seek(0)将读取的光标返回到文件的开头(文档为here)。无需两次打开文件。
使用file.seek跳至文件中的特定位置。但是,请考虑是否真的有必要再次浏览该文件。也许有更好的选择。
解决此问题的另一种方法是读取数据一次,将其保存在适当的列表/变量中,然后根据需要使用。例如,以所需的格式将其打印出来。
PUT /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale
输出:
#!/usr/bin/python
file = "/Users/rprakash/python/records.txt"
data = open(file, 'r')
for i, line in enumerate(data, 1):
details = line.split()
name = details[0] + " " + details[1]
print str(i) + ". " + name
data.seek(0)
for i, line in enumerate(data, 1):
details = line.split()
dob = details[2] + " " + details[3] + " " + details[4]
print str(i) + ". " + dob