python3:读取文件名,创建名字和姓氏颠倒的新文件

2024-06-10 05:48:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,只做一件简单的工作。我在stackoverflow上查看了类似的问题,但无法应用于我自己的问题。我已经创建了一个文件,其中有一个名称列表。如何创建一个新文件,在其中读取原始文件(假装我不知道文件中有多少个名字)并反转名称(人们的顺序相同,但姓在名之前)。下面是我的剧本:

firstname1 = "Morty"
lastname1 = "Smith"
fullname1 = firstname1 + " " + lastname1

firstname2 = "Donna"
lastname2 = "Gueterman"
fullname2 = firstname2 + " " + lastname2

firstname3 = "Beth"
lastname3 = "Smith"
fullname3 = firstname3 + " " + lastname3

firstname4 = "Rick"
lastname4 = "Sanchez"
fullname4 = firstname4 + " " + lastname4

firstname5 = "Little"
lastname5 = "Dipper"
fullname5 = firstname5 + " " + lastname5

formal_names = fullname1,fullname2,fullname3,fullname4,fullname5

f = open("names_normal.txt","w")
f.write("%s " % (formal_names, ))
f.close()

def reverse_list(lst):
    new = []
    count = len(lst)-1
    while count >=0:
        new.append(lst[count])
        count -= 1
    return new

x = reverse_list(formal_names)

n = open("names_new.txt","w")
n.write("%s " % (x, ))
n.close()

以下是我的结果:

第一个文件: ('Morty Smith'、'Donna Gueterman'、'Beth Smith'、'Rick Sanchez', '小北斗')

第二个文件:(‘小北斗星’、‘里克·桑切斯’、‘贝丝·史密斯’、‘唐娜·盖特曼’、‘莫蒂·史密斯’)

我想要什么:(‘史密斯·莫蒂’、‘格特曼·唐娜’、‘史密斯·贝思’、‘桑切斯·里克’、‘小北斗星’)

任何帮助都将不胜感激!非常感谢!你知道吗


Tags: 文件名称newnamescountsmithmortylst
3条回答
def reverse_list(lst):
        new = []
        for name in lst:
                temp = name.split(" ")
                new += [temp[1]+" "+temp[0]]

你只是在改变数组中单词的顺序,你应该改变名字和姓氏的顺序,从空格中分开。你知道吗

def reverse_name(name):
    # Try to fill here and update if doesn't work

def reverse_list(lst):
    new = []
    for name in lst:
       new.append(reverse_name(name))
    return new

我就是这样解决这个问题的。最好把它放在上面提到的函数中。你知道吗

firstname1 = "Morty"
lastname1 = "Smith"
fullname1 = firstname1 + " " + lastname1
firstname2 = "Donna"
lastname2 = "Gueterman"
fullname2 = firstname2 + " " + lastname2
firstname3 = "Beth"
lastname3 = "Smith"
fullname3 = firstname3 + " " + lastname3
firstname4 = "Rick"
lastname4 = "Sanchez"
fullname4 = firstname4 + " " + lastname4
firstname5 = "Little"
lastname5 = "Dipper"
fullname5 = firstname5 + " " + lastname5
formal_names = [fullname1,fullname2,fullname3,fullname4,fullname5]

reversed = []
for i in range(0, (len(formal_names))):
    rev = formal_names[i].split()
    rev_name = rev[1] + ' ' + rev[0]
    reversed.append(rev_name)
print(reversed)
['Smith Morty', 'Gueterman Donna', 'Smith Beth', 'Sanchez Rick', 'Dipper Little']

现在您只需将列表写入一个文件

with open('output.txt', 'w') as file:
    for name in reversed:
        file.write(name)

相关问题 更多 >