所以我目前有这段代码来读取如下所示的 accounts.txt 文件:
username1:password1
username2:password2
username3:password3
然后我让这个(感谢这里的一位成员)读取 accounts.txt 文件并将其拆分为用户名和密码,以便稍后打印。当我尝试打印第 1 行时,用户名和密码与此代码分开:
with open('accounts.txt') as f:
credentials = [x.strip().split(':') for x in f.readlines()]
for username,password in credentials:
print username[0]
print password[0]
它打印出这个:
j
t
a
2
a
3
(这些是我在文本文件中的三行,正确分割,但是它打印所有行并且只打印每行的第一个字母。)
我尝试了几种不同的方法,但都没有成功。有人知道该怎么做吗?
谢谢大家的帮助。真的很感激。这是我第二天的编程,对于这么简单的问题,我深表歉意。
最佳答案
username
和password
是字符串。当您对字符串执行此操作时,您将获得字符串中的第一个字符:
username[0]
不要那样做。只需打印用户名
。
一些进一步的解释。 credentials
是字符串列表的列表。打印出来时看起来像这样:
[['username1', 'password1'], ['username2', 'password2'], ['username3', 'password3']]
要获得一对用户名/密码,您可以这样做:print credentials[0]
。结果将是这样的:
['username1', 'password1']
或者,如果您执行了print credentials[1]
,则:
['username2', 'password2']
您还可以执行称为“拆包”的操作,这就是您的 for 循环所做的事情。您也可以在 for 循环之外执行此操作:
username, password = credentials[0]
print username, password
结果是
username1 password1
再说一次,如果你使用像 'username1'
这样的字符串并像这样使用它的单个元素:
username[0]
你得到一个字母,u
。
关于python - 无法从文本文件中打印特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073699/