前面我們把一個用戶的賬號密碼存成了文件,現(xiàn)在我們來看多個賬號密碼怎么處理。
首先我們在user.txt文件后面敲回車。
接著寫第二個賬號密碼,第三個賬號密碼,第四個……。
現(xiàn)在每一行都是一個賬號密碼,我們前面說過,換行本身也是一個字符,就是\n,雖然我們看不到,但是這個換行符確實存在的。
也就是這個文件本身是存成買內(nèi)個結(jié)尾都有一個\n。
現(xiàn)在我們是時候把這四個賬號密碼都取出來。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
對于這種我們需要取每一行內(nèi)容的情況,哦們可以直接對這個f進(jìn)行循環(huán)取值,循環(huán)我們學(xué)過兩種,一種是for循環(huán),還有while循環(huán)。
取值操作相對比較方便的就是for循環(huán)。
我們可以這樣寫。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
print(line)
這樣就把每一行都讀出來了。
我們看打印結(jié)果,每一行后面都多了一個換行的效果,這其實有兩個換行符。
我們讀的這個文件每一行后面都自己帶了一個換行符,而我們用的print它默認(rèn)也會在后面加一個換行符。
我們前面講九九乘法表的時候也說過這個情況,所以這里就出現(xiàn)了這種兩次換行情況。
如果我把print默認(rèn)的換行符改掉,再來運行。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
print(line, end='')
這樣打印出來的結(jié)果就沒有多的那個換行符了。
現(xiàn)在我們拿到了每一行的數(shù)據(jù)了,但是你仔細(xì)想,我們是真的拿到了每一行的數(shù)據(jù)了嗎?
前面說在文件里面,之所以有換行的效果,是因為每一行的末尾都有一個換行符,就是\n。
所以說我們拿到的并不是純粹的數(shù)據(jù),所以我們在用split拆分拿到賬號密碼之前,要把這個\n去掉。
不然這些密碼都不對了。
所以在拆分之前,我們要進(jìn)行一步操作,
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
line.strip('\n')
這樣寫就可以取出字符串兩端的\n。
這個strip我們前面是講過的,當(dāng)時我們講的是默認(rèn)去除字符串兩端的空格,前期是這樣的說法并不太準(zhǔn)確,準(zhǔn)確的說是是去除字符串兩端的空白字符。
64、Python 字符符串詳解之strip函數(shù)應(yīng)用
空白字符就是你看不見的字符,所以說我們在括號這里可以不給它傳參數(shù)。
line.strip()
現(xiàn)在這個line.strip()的返回值是一個被我們?nèi)サ鬨n的字符串對吧,既然他是字符串,就可以直接在后面點split,然后按照四個橫杠拆分。
結(jié)果就是一個列表。
l= line.strip().split('----')
這個列表里面有兩個值,直接來打印一下。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
l = line.strip().split('----')
print(l)
這樣賬號密碼就拿到了。
但是你看我把這個stlip去掉,再來看結(jié)果。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\user.txt', mode='rt', encoding='utf-8') as f:
for line in f:
# print(line, end='')
l = line.split('----')
print(l)
打印出來每個密碼后面都有\(zhòng)n。
所以.strip()一定不要忘記,先strip再split。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 多賬號處理