Python 檔案操作(二)

2021-08-07 09:35:07 字數 3808 閱讀 1734

檔案的讀寫重新整理操作,基本的命令總結如下表:

命令說明

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...