首页 > 解决方案 > 从文本文件中读取然后拆分该信息

问题描述

我需要从文本文件中读取,然后单独打印信息。例如:我得到了这样格式的姓名列表:Orville Wright 1988 年 7 月 21 日我需要这样制作结果:姓名 1. Orville Wright 日期 1. 1988 年 7 月 21 日

我尝试使用阅读器进行分隔,但我必须为每个给出的名称和日期设置一个单独的代码行,因为它们的长度不同。

with open('File name and location', 'r') as reader:
    print(reader.readline(14))

``````````````````````````````````````````````````  
this is the outcome : Orville Wright
```````````````````````````````````````````````````

I want my results to be:

Name:
     1. Orville Wright
     2. Rogelio Holloway
     etc
Date:
     1. 21 July 1988
     2. 13 September 1988
     etc
````````````````````````````````````````````````````
The contents of the file are as follows:
Orville Wright 21 July 1988
Rogelio Holloway 13 September 1988
Marjorie Figueroa 9 October 1988
Debra Garner 7 February 1988
Tiffany Peters 25 July 1988
Hugh Foster 2 June 1988
Darren Christensen 21 January 1988
Shelia Harrison 28 July 1988
Ignacio James 12 September 1988
Jerry Keller 30 February 1988
Frankie Cobb 1 July 1988
Clayton Thomas 10 December 1988
Laura Reyes 9 November 1988
Danny Jensen 19 September 1988
Sabrina Garcia 20 October 1988
Winifred Wood 27 July 1988
Juan Kennedy 4 March 1988
Nina Beck 7 May 1988
Tanya Marshall 22 May 1988
Kelly Gardner 16 August 1988
Cristina Ortega 13 January 1988
Guy Carr 21 June 1988
Geneva Martinez 5 September 1988
Ricardo Howell 23 December 1988
Bernadette Rios 19 July 1988

标签: python

解决方案


这是使用正则表达式的一种方法。

前任:

import re

names = []
dates = []
with open(filename) as infile:
    for line in infile:
        line = line.strip()
        date = re.search("(\d{1,2} [a-zA-Z]+ \d{4})", line).group(1)  #Extract Date. 
        dates.append(date) 
        names.append(line.replace(date, "").strip())  #Get Name. 

print("Name:")
for name in names:
    print(name)
print("---"*10)
print("Date:")
for date in dates:
    print(date)  

输出:

Name:
Orville Wright
Rogelio Holloway
Marjorie Figueroa
Debra Garner
Tiffany Peters
Hugh Foster
Darren Christensen
Shelia Harrison
Ignacio James
Jerry Keller
Frankie Cobb
Clayton Thomas
Laura Reyes
Danny Jensen
Sabrina Garcia
Winifred Wood
Juan Kennedy
Nina Beck
Tanya Marshall
Kelly Gardner
Cristina Ortega
Guy Carr
Geneva Martinez
Ricardo Howell
Bernadette Rios
------------------------------
Date:
21 July 1988
13 September 1988
9 October 1988
7 February 1988
25 July 1988
2 June 1988
21 January 1988
28 July 1988
12 September 1988
30 February 1988
1 July 1988
10 December 1988
9 November 1988
19 September 1988
20 October 1988
27 July 1988
4 March 1988
7 May 1988
22 May 1988
16 August 1988
13 January 1988
21 June 1988
5 September 1988
23 December 1988
19 July 1988

推荐阅读