在python中将单个字符串附加到列表的每个元素

2024-05-08 13:39:48 发布

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

我试图读取一个包含用户ID列表的文本文件,并通过添加@where.com网站以ID结尾。然后我想把这些电子邮件地址写入一个用逗号分隔的新文件。你知道吗

textFile = open(“userID.txt”, “r”)
identList = textFile.read().split(“, “)
print identList
textFile.close()

emailString = “@wherever.com, ”
newList = [x +  emailString for x in identList]

writeFile = open(“userEmail.txt”, “w”)
writeFile.writelines(newList)
writeFile.close()

我正在为Mac使用Python3.x。这根本不管用。我不确定它是否正在读取初始文件。它肯定不会写入新文件。有人能告诉我这个计划失败的地方吗?你知道吗


Tags: 文件用户txtcomid列表closeopen
2条回答

类似于以下的方法应该可以工作:

with open('userID.txt', 'r') as f_input, open('emails.txt', 'w') as f_output:
    emails = ["{}@wherever.com".format(line.strip()) for line in f_input]
    f_output.write(", ".join(emails))

因此,如果有一个userID.txt文件包含以下名称,每行一个名称:

fred
wilma

您将得到一个单行输出文件,如下所示:

fred@wherever.com, wilma@wherever.com

您可以这样做,也可以使用上下文管理器进行读写,因为这样您就不必担心关闭文件:

identList = []
with open('userID.txt', 'r') as f:
    identList = f.readlines().rstrip().split(',')

outString = ','.join([ '{0}@wherever.com'.format(x) for x in identList ])

with open('userEmail.txt', 'w') as f:
   f.write(outString)

到字符串的转换是通过join完成的,在本例中,join使用逗号连接在理解中形成的列表元素。你知道吗

相关问题 更多 >

    热门问题