Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python读取/解析帐户:密码txt文件逐行_Python_Python 3.x_Parsing - Fatal编程技术网

Python读取/解析帐户:密码txt文件逐行

Python读取/解析帐户:密码txt文件逐行,python,python-3.x,parsing,Python,Python 3.x,Parsing,因此,我基本上有一个accounts.txt文件,其中包含我创建的帐户,如下所示: Richard:Milo:RichardMilo@email.info:0495612970 Adrian:Clark:ClarkAdrian283406@email.info:0490714484 Michael:Robinson:13Mich@email.info:0446088017 Julio:Lucas:JulioLucas60@email.info:0454710033 如您所见,它们的格式为Fir

因此,我基本上有一个accounts.txt文件,其中包含我创建的帐户,如下所示:

Richard:Milo:RichardMilo@email.info:0495612970
Adrian:Clark:ClarkAdrian283406@email.info:0490714484
Michael:Robinson:13Mich@email.info:0446088017
Julio:Lucas:JulioLucas60@email.info:0454710033
如您所见,它们的格式为FirstName:LastName:Email:Phone

简而言之,我希望我的python脚本做的是读取每一行,在每一行返回名字、姓氏、电子邮件和电话作为“email”、“first_name”、“last_name”和“phone”变量,然后完全删除该行,然后移动到下一行,执行完全相同的操作,然后删除该行,等等,我已经有了循环,它只是返回每行的一部分,这给我带来了困难

以下是我当前的python代码:

submit_count = input('\nEnter Desired Number of Entries: ')

chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(chrome_options=chrome_options)

def enterraffle():

    email = #NOT SURE HOW TO GET THE EMAIL FROM ACCOUNTS.TXT HERE
    first_name = #NOT SURE HOW TO GET THE FIRST NAME FROM ACCOUNTS.TXT HERE
    last_name = #NOT SURE HOW TO GET THE LAST NAME FROM ACCOUNTS.TXT HERE
    phone = #NOT SURE HOW TO GET THE PHONE FROM ACCOUNTS.TXT HERE

    driver.get(‘Login URL’)

    driver.find_element_by_xpath('//*[@id="email"]').send_keys(email)
    driver.find_element_by_xpath('//*[@id="password"]').send_keys(‘password123’)

    print('{}/{} Successful Raffle Entries ({} {}:{})'.format(i, submit_count, first_name, last_name, email))
    with open("entries_nl.txt", "a") as f:
        f.write(first_name + ":" + last_name + ":" + email + ":" + phone + ":" + "\n")
        f.close()

    time.sleep(2)

    #DELETE THAT LINE FROM ACCOUNTS.TXT HERE

    driver.delete_all_cookies()

for i in range(int(submit_count)):
        enterraffle()
感谢您的帮助

您可以使用该模块读取csv文件

lines = []
fields = ['first_name', 'last_name', 'email', 'phone']
with open('accounts.txt') as fp:
    for line in fp:
    values = [x.strip() for x in line.split(':')]
    lines.append(dict(zip(fields, values)))
import csv

#Open the file
lines = []
with open('accounts.txt') as fp:

    #Create a csv reader on the file
    reader = csv.reader(fp, delimiter=":")
    #Iterate through each row
    for row in reader:
        lines.append(row)

print(lines)
输出将是

[
['Richard', 'Milo', 'RichardMilo@email.info', '0495612970'], 
['Adrian', 'Clark', 'ClarkAdrian283406@email.info', '0490714484'], ['Michael', 'Robinson', '13Mich@email.info', '0446088017'], 
['Julio', 'Lucas', 'JulioLucas60@email.info', '0454710033']
]

因此,第一封电子邮件将是
行[0][2]

然后,要删除文件的内容,只需在
w+
模式下打开它即可

#Open the file in w+ to delete all rows
filename = "accounts.txt"
f = open(filename, "w+")
f.close()

然后,您可以将此输出用于您的
enterraffle()
函数

能否显示代码?最好有一个起点。请发布您编写的python代码,并指出您遇到麻烦的地方。。。我建议您使用(with
delimiter=“:”
)来读取文件。@Netwave抱歉,我忘了。我的python代码已经被添加请删除所有与你的问题无关的代码。好的,那么假设我想抓取第一封邮件,我该如何做,然后删除整行?好的,我添加了一个函数来删除最后的所有行,通常同时读写文件是个坏主意,这也是不可预测的!请检查答案@123ang,如果有任何混淆,请告诉我:)好的,这会返回一个很大的列表,这很好,那么我该如何从列表中抓取第5封电子邮件,然后将其从同一列表中删除?第5封电子邮件:行[4]['email'],然后获取并删除第5封电子邮件:email_5th=行[4]。pop('email'))获取第五封电子邮件并删除第五条记录:email_5th=行[4]['email'];删除行[4]此答案不会删除@123ang的行不确定您为什么接受此选项?