1

Python...

我有一个电子邮件地址文件,我需要创建一个脚本来将所有这些地址作为帐户导入,因此正在进行一些文本操作,我需要学习更多 python。
该文件的形式为

user1@domain1.co.uk
user1@domain2.com
user2@domain4.com
user3@domain4.com

这基本上是一个用户名和一个域名,我需要创建一个帐户名(与用户相同)和域,以及电子邮件地址,以及一些其他日期/文件路径变量到导入文件中。一旦将用户和域分配给变量,就可以将它们打印到包含其他数据的文件中,以创建和导入列表/脚本。然后使用导入文件在一个新的邮件服务器上创建一个帐户列表,而无需一一遍历所有 128k。所以。我如何一次读取文件的每一行(128,000 个条目),将每个用户名放入一个变量,然后将相应的域放入一个数组/元组/列表/字典?然后添加日期和其他一些文件路径的东西,用两个变量的电子邮件地址构建一个帐户名,并将输出附加到一个新文件中,

类似的东西

使输出文件
读取文件第 1 行并将用户和域放入变量中
print user print domain print (otherstuff) print user@domain

将每个输出循环附加到同一个新文件(不是原始文件)
循环到文件的下一行并重复
继续到 EOF(128k 行之后)
以制作一个大文件来导入邮件帐户和每个文件的详细信息,
(可能将输出文件拆分为更小的块对于导入稳定性,每个文件 100 个条目?)

到目前为止我有

#!/usr/bin/python
import time;

input = open('/home/adam/Downloads/mailaccounts.txt', 'r')
fileoutput = open('/tmp/domaintest.txt', 'a' 'w')
sql1 = "INSERT INTO mailbox (username, password, name, storagebasedirectory, maildir, quota, domain, active)"
password = "88888888"
storage_base_directory = '/var/vmail/vmail1'
localtime = time.localtime(time.time())
localtime = localtime[0], ".", localtime[1], ".", localtime[2], ".", localtime[3], ".", localtime[4], ".", localtime[5]
localtime = ''.join(map(str, localtime))
for line in input:
    email = line
    user = line.split("@")[0]
    domain = line.split("@")[1]
    fileoutput.write(domain)

现在输出文件有字符

^@d^@o^@m^@a^@i^@n^@1^@.^@c^@o.^@u^@k^@^M^@

从命令行测试时打印命令不显示的

domain1.co.uk

有人有什么想法吗?

4

1 回答 1

0

尝试用 'a+' 替换 'a' 'w' 选项,如下所示

fileoutput = open('/tmp/domaintest.txt', 'a+')

在此之后,您的脚本运行良好并获得

domain1.co.uk 
domain2.com 
domain4.com 
domain4.com 

作为输出文件中的输出

于 2017-07-04T09:58:08.573 回答