[英]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.