如何分割文件中的邮箱密码列表?Python代码返回['0']求解决
问题分析与解决
原代码存在几个关键错误,导致无法正确拆分email和password:
- 调用
f.readlines()后,文件指针移动到文件末尾,再次调用f.readlines()会返回空列表,无法读取到内容。 - 循环遍历的是
str(lineCount)(行数的字符串形式),而非文件中的每一行,完全偏离目标。 - 每次循环直接覆盖
username和password变量,没有将拆分结果追加到列表中。 - 未导入
re模块(代码中使用了re.split但未声明导入)。 - 未处理行尾的换行符,可能导致拆分结果包含多余的换行字符。
修正后的代码
import re import easygui path = easygui.fileopenbox() print(path) emails = [] passwords = [] with open(path, 'r') as f: # 遍历文件中每一行 for line in f.readlines(): # 去除行首尾空白字符(含换行符) line = line.strip() if not line: continue # 跳过空行 # 拆分email和password,限制仅拆分一次 parts = re.split(':', line, maxsplit=1) if len(parts) == 2: emails.append(parts[0]) passwords.append(parts[1]) print("emails:", emails) print("passwords:", passwords)
关键改进点
- 提前导入所需的
re和easygui模块。 - 直接遍历读取到的每一行,避免文件指针偏移问题。
- 用
strip()处理行首尾空白,消除换行符干扰。 - 添加空行判断,跳过无效内容。
- 使用
maxsplit=1确保即使密码包含冒号,也能正确拆分出邮箱和密码。 - 将拆分结果追加到对应列表,而非覆盖变量。
内容的提问来源于stack exchange,提问作者dracoludio draco
相关产品推荐
相关产品推荐

