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