Python 多账号处理

前面我们把一个用户的账号密码存成了文件,现在我们来看多个账号密码怎么处理。

首先我们在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它默认也会在后面加一个换行符。

我们前面讲九九乘法表的时候也说过这个情况,所以这里就出现了这种两次换行情况。

54、Python 用for循环写九九乘法表1

55、Python 用for循环写九九乘法表2

如果我把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我们前面是讲过的,当时我们讲的是默认去除字符串两端的空格,前期是这样的说法并不太准确,准确的说是是去除字符串两端的空白字符。

63、Python 字符串详解之strip函数

64、Python 字符符串详解之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 多账号处理

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏