文本文件的處理
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!成都創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計制作,服務(wù)好的網(wǎng)站設(shè)計公司,成都網(wǎng)站制作、做網(wǎng)站負(fù)責(zé)任的成都網(wǎng)站制作公司!
打開文件
函數(shù):open(filename,mode)
filename => 訪問的文件
mode => 訪問模式
常見模式 作用
r 只讀
r+ 讀寫
w 只寫 文件存在則覆蓋,不存在則創(chuàng)建
w+ 只寫 文件存在則覆蓋,不存在則創(chuàng)建
a 追加 文件存在追加到已有內(nèi)容后
rb 讀寫
wb 讀寫
ab 追加和讀
讀
比如我在這里先編輯了一個1.txt
然后寫一個腳本來讀取它
file=open('1.txt','r')
print(file.readline())
why??
為什么只顯示一行
read 讀取整個文件,每次讀取整個文件,它通常將讀取到底文件內(nèi)容放到一個字符串變量中,也就是說內(nèi)容是一個字符串類型。
readline 讀取下一行,每只讀取文件的一行,通常也是讀取到的一行內(nèi)容放到一個字符串變量中,返回str類型。
readlines 讀取整個文件到一個迭代器以供我們遍歷,每次按行讀取整個文件內(nèi)容,將讀取到的內(nèi)容放到一個列表中,返回list類型。]
O~
這下就明白了,所以咱們使用read()
使用readlines()的情況
其實它也是可以像read()一樣輸出
比如:
那么這里我也就不多舉例了哈,有興趣的可以自己動手研究一下~
當(dāng)然,還有另一種表示的方法
比如:
with open('1.txt','r') as f:
print(f.readlines())
寫
#coding:utf-8
file=open('1.txt','w')
file.write('Are You Ok?')
file.close()
可以看到1.txt已經(jīng)變成了剛剛寫入的內(nèi)容
追加
可以發(fā)現(xiàn),剛剛咱們寫的都已經(jīng)被覆蓋了。所以咱們得使用到a這個模式追加
1.txt變?yōu)榱肃嵵輯D科醫(yī)院 http://www.120zzkd.com/
這里咱們沒有換行,加個換行符\n就可以了
常見讀寫類型的區(qū)別
r只讀,r+讀寫,若文件不存在會報錯并不會創(chuàng)建新文件
w,只寫,文件不存在會創(chuàng)建新文件,w+讀寫,文件不存在會創(chuàng)建新文件,兩種方法使用的時候都會將文件內(nèi)容先清零。
a,a+同樣會創(chuàng)建新文件
文件夾的處理和操作
os模塊提供了一個操作系統(tǒng)接口函數(shù),通過os模塊可以對系統(tǒng)中的文件,目錄等進(jìn)行操作
os.mkdir
os.rmdir
os.path.exits(‘C:/’)
os.rename(‘1.txt’,‘1.py’)
os.remove(‘1.py’)
os.getcwd()
一個例子
#coding:utf-8
import base64
import sys
'''
加密腳本
用法:python base64encode.py 需要加密的文本 加密后的文本
'''
with open(sys.argv[1],'rb') as file1:
list = [base64.b64encode(i) for i in file1]
'''
for i in file1:
list.append(base64.b64encode(i))
'''
with open(sys.argv[2],'wb') as file2:
for line in list:
''' 逐行讀取'''
file2.write(line+b'\n')
file2.close()
print('success!')