檔案的讀寫重新整理操作,基本的命令總結如下表:
命令說明
r唯讀(預設)
r+讀寫
w寫入 先刪除原檔案,再重新建立,如果檔案不存在則建立
w+讀寫 先刪除原檔案,再重新建立,如果檔案不存在則建立,可以寫入輸出
a寫入 在檔案末尾追加新的內容,檔案不存在,則建立
a+讀寫 在檔案末尾追加新的內容,檔案不存在,則建立
b開啟二進位制的檔案,可與r,w,a,結合使用
u支援所有換行符號 \r\n
#14
f = open("yesterday2", 'r', encoding='utf-8')
print(f.tell())
print(f.readline())
print(f.tell())
f.seek(0)#返回游標
print(f.readline())
print(f.encoding)#編碼方式
print(f.fileno())#檔案埠
print(dir(f.buffer))
f.close()
緩衝輸出重新整理:
import sys
import time
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
如果檔案存在,就報錯;否則,建立並寫內容
with
open('database','x',encoding='utf-8') as f:
forline
in f :
print(line)
fileexistserror: [errno 17] file exists: 『database』
#讀寫
f=open('d:/2345downloads/yesterday2','r+',encoding='utf-8')#既能讀又能寫
print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())
f.write('********************=')#只能在最後追加
print(f.readline())
#寫讀
f=open('d:/2345downloads/yesterday2','w+',encoding='utf-8')#既能讀又能寫
f.write('--------data--------\n')
f.write('--------data--------\n')
f.write('--------data--------\n')
f.write('--------data--------\n')
print(f.tell())
f.seek(20)
print(f.tell())
f.write('********************=')#只能在最後追加
print(f.readline())
f.close()
f = open('d:/2345downloads/yesterday2', 'r', encoding='utf-8') #
f_new = open('d:/2345downloads/yesterday2.bak', 'w', encoding='utf-8') #
forline
in f:
if"甜美的曲兒等我歌唱"
inline:
line = line.replace("甜美的曲兒等我歌唱", "甜美的曲兒等alex歌唱")
f_new.write(line)
f.close()
f_new.close()
with
open('d:/2345downloads/yesterday2', 'r', encoding='utf-8') as f, \
open('d:/2345downloads/yesterday2.bak', 'w', encoding='utf-8') as f_new:
forline
in f:
if"甜美的曲兒等我歌唱"
inline:
line = line.replace("甜美的曲兒等我歌唱", "甜美的曲兒等alex歌唱")
f_new.write(line)
with
open("f:\\objectmarker\\neg\\sample_neg.dat",'r',encoding='utf-8') as f1,\
open("f:\\objectmarker\\neg\\new_sample_neg.dat",'w',encoding='utf-8')as f2:
total_sum = 0
#用於計數
f=open('d:/2345downloads/yesterday','wb')#寫二進位制檔案,需要encoding
f.write('hahaha'.encode())
f.close()
f=open('d:/2345downloads/yesterday','ab')#追加二進位制檔案,需要encoding
f.write('\nhello'.encode())
f.close()
利用f.seek()指定位置,游標位置之後清空了內容。
內容:
admin|123456
alex|123
daisy|888888
alextim|111
kevin|999
okokok
with
open("database", "r+")as f:
forline
in f:
if"999"
inline:
print(line)
print(f.tell())
f.seek(64)
f.truncate()
執行後:
python檔案操作(二)
1。flush 實時將資料寫進磁碟 import sys,time for i in range 20 sys.stdout.write sys.stdout方法在同一行列印 sys.stdout.flush 每列印一次 寫入一次 time.sleep 0.3 每隔0.3秒列印一次2。truncat...
python 檔案操作 二
目錄2.檔案優化操作 3.檔案操作模式 4.練習 1.1 讀方法with open r a.txt r encoding utf8 as f print f.read 一次性讀取檔案所有的內容 print f.readline 每次值讀檔案一行內容 print f.readlines 讀取檔案所有內...
python檔案操作二(OS)
import os r os.path.isabs path 判斷是否是絕對路徑 返回上一級 path os.path.dirname path 返回目錄 result os.path.join path,拼接目錄,可以多層拼接 path os.path.abspath path path os.g...