1. 程式人生 > >python for 檔案操作

python for 檔案操作

    只讀 r      正常文字
只讀 rb 位元組
read() 預設全讀完 可以指定讀幾個
readline 一行一行讀




f = open('s.txt',mode='w',encoding='utf-8')
開啟 mode 是對檔案操作的模式

w模式會自動建立檔案 w會覆蓋 先清空後寫入
f.write('黑哥真黑,黑哥都自己黑感冒了')
f.close()


f1 = open('s.txt',mode='w',encoding='utf-8')
f1.write('藝術哥,愛吃六味地黃丸')
f1.close()

總結:
w只能覆蓋的寫
w模式會自動建立檔案

w模式下寫的時候首先清空檔案的內容,然後在寫


f = open('s.txt',mode='a',encoding='utf-8')
追加寫

f.write('趙溼熊')
f.write('金陽')
f.write('寶寶')


總結:

a 追加 在檔案文字末尾新增內容


路徑

f = open('../day6/01 今日內容',mode='r',encoding='utf-8')
.. 返回上一級
轉義 'E:\\s17\\day07\\資料夾\\s.txt' r'E:\s17\day07\資料夾\s.txt' 絕對路徑
'../day6/01 今日內容' 相對路徑 相對於當前檔案

## 推薦使用相對路徑 以後工作全都是相對路徑


print(f.read())

f = open('資料夾/s.txt',mode='r+',encoding='utf-8') #r+ 讀寫

ff = f.read()
print(ff)
f.write('你好黑')

f.write('你好黑') # r模式 游標在最開頭
ff = f.read()
print(ff)

########坑########## r+ 是咱們最常用的


f = open('資料夾/s.txt',mode='w+',encoding='utf-8') # w+ 寫讀
f.write('你好黑')
f.flush() # 重新整理
f.seek(3) # 調整游標位置到檔案最開頭


seek(0) 調整到開頭
seek(3) 單個引數是位元組數 0除外 0就是表示調整游標到開頭

seek(0,1) 兩個引數的時候就是表示游標調整到當前位置
seek(0,0) 兩個引數的時候就是表示游標調整到開始位置
seek(0,2) 兩個引數的時候就是表示游標調整到末尾位置

ff = f.read()
print(ff)
f.close()


f = open('資料夾/s.txt',mode='a+',encoding='utf-8') # a+ 追加(寫) 讀
f.seek(0)
ff = f.read()
print(ff)
f.seek(0)
f.write('hahahaha0')

不管你把游標怎麼調,都是在檔案的最後寫入

f.write('哇哈哈哈哈')
f.seek(0)
ff = f.read()
print(ff)


r
w
a

rb
wb
ab

r+
w+
a+

f = open('資料夾/s.txt',mode='w',encoding='utf-8')

ss = f.tell() # 按位元組算 #檢視游標位置

print(ss)

f = open('資料夾/s.txt',mode='w',encoding='utf-8')
f.write('''扁擔寬板凳長
扁擔寬板凳長扁擔想綁在板凳上板凳不讓扁擔綁在板凳上扁擔偏要綁在板
凳上板凳偏偏不讓扁擔綁在那板凳上到底扁擔寬還是板凳長。''')
f.seek(9)
# print(f.tell())
# f.truncate() #截斷就是將游標後邊的內容刪除


with open('資料夾/s.txt',mode='w',encoding='utf-8')as f:
f.write('asfasf')


with open('資料夾/s1',mode='r',encoding='utf-8')as f,\
open('資料夾/s.txt',mode='w',encoding='utf-8')as f1:
ff = f.read() #s1
ff2 = ff.replace('我','都') # 修改
f1.write(ff2) # s.txt 修改後的內容
for i in f:
ret = i.replace('都','大家')
f1.write(ret)

import os
os.remove('資料夾/s1')
os.rename('資料夾/s.txt','資料夾/s1') # 第一個引數是要被改的名字,第二個引數是改的名字
with open('資料夾/s1',mode='')