【发布时间】:2011-01-13 08:42:57
【问题描述】:
我有一个包含数百个成员的列表,我想用名字、中间名和姓氏来分隔,但有些成员有前缀(用“P”表示)。所有可能的组合:
First Middle Last
P First Middle Last
First P Middle Last
P First p Middle Last
如何在 Python 中分隔 First(带 P,如果可用)、Middle(带 P,如果可用)和 Last names?这是我想出的,但它并不完全奏效。
import csv
inPath = "input.txt"
outPath = "output.txt"
newlist = []
file = open(inPath, 'rU')
if file:
for line in file:
member = line.split()
newlist.append(member)
file.close()
else:
print "Error Opening File."
file = open(outPath, 'wb')
if file:
for i in range(len(newlist)):
print i, newlist[i][0] # Should get the First Name with Prefix
print i, newlist[i][1] # Should get the Middle Name with Prefix
print i, newlist[i][-1]
file.close()
else:
print "Error Opening File."
我想要的是:
- 获取名字和中间名及其前缀(如果有)
- 将每个(第一个、中间、最后一个)输出到单独的 txt 文件或单个 CSV 文件(最好)。
非常感谢您的帮助。
【问题讨论】:
-
从示例中不清楚“前缀”是什么;例如,如何判断“A B C D”是
("A B", "C", "D")还是("A", "B C", "D")。请举一个更完整的例子,并更具体地解释什么是“前缀”。 -
如果前缀是一个字母长并且没有一个字母长的名称,您可以尝试
len()并将它们过滤掉,将它们与它们各自的名称分组。只是一个想法。 -
只有三个前缀“M”、“Shk”和“BS”
标签: python