前面我们把一个用户的账号密码存成了文件,现在我们来看多个账号密码怎么处理。
首先我们在user.txt文件后面敲回车。
接着写第二个账号密码,第三个账号密码,第四个……。
现在每一行都是一个账号密码,我们前面说过,换行本身也是一个字符,就是\n,虽然我们看不到,但是这个换行符确实存在的。
也就是这个文件本身是存成买内个结尾都有一个\n。
现在我们是时候把这四个账号密码都取出来。
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
对于这种我们需要取每一行内容的情况,哦们可以直接对这个f进行循环取值,循环我们学过两种,一种是for循环,还有while循环。
取值操作相对比较方便的就是for循环。
我们可以这样写。
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
print(line)
这样就把每一行都读出来了。
我们看打印结果,每一行后面都多了一个换行的效果,这其实有两个换行符。
我们读的这个文件每一行后面都自己带了一个换行符,而我们用的print它默认也会在后面加一个换行符。
我们前面讲九九乘法表的时候也说过这个情况,所以这里就出现了这种两次换行情况。
如果我把print默认的换行符改掉,再来运行。
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
print(line, end='')
这样打印出来的结果就没有多的那个换行符了。
现在我们拿到了每一行的数据了,但是你仔细想,我们是真的拿到了每一行的数据了吗?
前面说在文件里面,之所以有换行的效果,是因为每一行的末尾都有一个换行符,就是\n。
所以说我们拿到的并不是纯粹的数据,所以我们在用split拆分拿到账号密码之前,要把这个\n去掉。
不然这些密码都不对了。
所以在拆分之前,我们要进行一步操作,
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
line.strip('\n')
这样写就可以取出字符串两端的\n。
这个strip我们前面是讲过的,当时我们讲的是默认去除字符串两端的空格,前期是这样的说法并不太准确,准确的说是是去除字符串两端的空白字符。
空白字符就是你看不见的字符,所以说我们在括号这里可以不给它传参数。
line.strip()
现在这个line.strip()的返回值是一个被我们去掉\n的字符串对吧,既然他是字符串,就可以直接在后面点split,然后按照四个横杠拆分。
结果就是一个列表。
l= line.strip().split('----')
这个列表里面有两个值,直接来打印一下。
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
l = line.strip().split('----')
print(l)
这样账号密码就拿到了。
但是你看我把这个stlip去掉,再来看结果。
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
# print(line, end='')
l = line.split('----')
print(l)
打印出来每个密码后面都有\n。
所以.strip()一定不要忘记,先strip再split。
未经允许不得转载:445IT之家 » Python 多账号处理