python - 使用 Python 和 split() 解析文本文件

标签 python list

我确信这个问题有一个简单的答案,我只是似乎无法找出最好的解决方案。

我有一个文本文件,其中包含以下内容:用户名和密码。示例如下:

mcgoga12,password
shelby12,password1

我想打开这个文件,并读入该文件。但是,我想将用户名(mcgoga12 等)和密码(密码等)存储在两个单独的列表中。

有人对如何解析这个有具体的建议吗?

这是我尝试过的:

with open("credentials.txt", "r") as infile:
    users = infile.read().rsplit(',',3)
    print users

但是,我不断收到此输出(显然它没有将其分开)

['mcgoga12', 'password\nshelby12', 'password1\n']

最佳答案

文件中存在新行,必须使用 strip 系列函数显式删除它们。我们使用rstrip,然后根据分割,这将为我们提供一个包含用户名及其相应密码的列表。现在,我们对所有行执行此操作,最后使用 zip 函数转换 data,如下所示

with open("credentials.txt", "r") as infile:
    data = [line.rstrip().split(",") for line in infile]
    usernames, passwords = zip(*data)
    print usernames, passwords
    # ('mcgoga12', 'shelby12') ('password', 'password1')

如果我们只打印数据,它看起来像这样

[['mcgoga12', 'password'], ['shelby12', 'password1']]

当我们解压zip它时,它会变成

('mcgoga12', 'shelby12') ('password', 'password1')

当我们说压缩和解包时,这意味着我们将序列解包为函数的参数。例如,

zip(*data)

只是

的简写符号
zip(data[0], data[1]...)

关于python - 使用 Python 和 split() 解析文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22951294/

相关文章:

python - python类初始值设定项中的可选参数

python - 覆盖来自第三方应用程序的 URL 模式

python - 为什么这个随机生成器有时会返回 3 位而不是 4 位?

python - 列表元素的公平划分

java - 在 Java 中使用列表

具有多个字段的 Javascript 高级搜索

java - 循环列表以查找特定值

python - 输入二维矩阵的每个元素的最短方法

python - 空列表上出现 "all"和 "any"结果的原因

python - 在 GAE 上使用 Python 2.7 没有显示错误堆栈跟踪