繁体   English   中英

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

[英]appending a single string to each element of a list in python

我正在尝试读取包含用户ID列表的文本文件,并通过在ID后面附加@ wherever.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。 这根本不起作用。 我不确定它是否正在读取初始文件。 它肯定不是在写新文件。 有人可以建议程序无法在哪里工作吗?

类似于以下内容的东西应该起作用:

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将理解中形成的列表元素与它们之间的逗号连接在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM