###檔案'''1.
什麼是檔案
檔案是作業系統為使用者/應用程式提供一種操作硬碟的虛擬單位
2. 為何要用檔案
為了訪問硬碟資料
3. 如何用檔案
#1. 開啟檔案
#2. 讀寫檔案
#3. 關閉檔案##**作業系統資源
'''# f=open(r'c:\users\dell\desktop\a.txt',mode='r',encoding='utf-8')
# #開啟乙個檔案,後面跟檔案的位址,mode等於r表示唯讀方式,
# #小寫的r表示後面的字串沒有特別的含義
# data=f.read()
# print(data)
# print(f)
# f.close() # **作業系統資源
# with open('a.txt',mode='r',encoding='utf-8') as f1,\
# open('b.txt',mode='r',encoding='utf-8') as f2:
# ####以後開啟檔案用這種格式
# print(f1.read())
# print(f2.read())
#檔案內指標的移動#只有t模式下的read(n)中n代表讀取的字元個數,除此外檔案內指標的移動都是以bytes為單位
# with open('e.txt',mode='rt',encoding='utf-8') as f:
# data=f.read(4)
# print(data)
# with open('e.txt',mode='rb') as f:
# data=f.read(6)
# print(data.decode('utf-8'))
# with open('e.txt',mode='r+',encoding='utf-8') as f:
# f.truncate(3)
# 主動控制檔案內指標的移動
#f.seek(引數1,引數2)
#引數1: 控制的移動的位元組個數
#引數2: 控制參照的位置
# 0(預設的):參照檔案開頭
# 1:參照指標當前所在位置
# 2:參照指標檔案末尾
# 強調:只有0模式可以在t下使用,1和2模式只能在b模式下使用
# with open('e.txt',mode='rt',encoding='utf-8') as f:
# a=f.seek(3,0)###第乙個引數表示開始的位置,
# print(a)
# print(f.read())
# with open('e.txt',mode='rb') as f:
# # f.seek(6,0)
# # f.read(3)
# # f.seek(3,1)
# # print(f.tell())
# # print(f.read().decode('utf-8'))
## # f.seek(-8,2)
# # print(f.read().decode('utf-8'))
## f.seek(0,2)
# print(f.tell())
#小練習:tail -f access.log
# with open('access.log','rb') as f:
# f.seek(0,2)
# while true:
# line=f.readline()
# if len(line) == 0:
# #沒有值
# pass
# else:
# print(line.decode('utf-8'),end='')
#檔案修改的兩種方式:#結論:硬碟空間都是用新內容覆蓋舊內容,不可更改,而記憶體空間是可以修改的
#之前的操作都是直接覆蓋原檔案,這個可以在原檔案的基礎上進行修改
# with open('e.txt',mode='r+t',encoding='utf-8') as f:
# f.seek(3,0)
# f.write('111111111111')
# 檔案修改的方式一:
# 思路:
# 1. 將檔案內容全部讀入記憶體
# 2. 在記憶體中完成修改
# 3. 將修改的結果寫回原檔案
# 優點:在檔案修改期間硬碟上就乙份資料
# 缺點:會過多地占用記憶體
# with open('e.txt',mode='rt',encoding='utf-8') as f:
# data=f.read()
# data=data.replace('alex','dsb')
## with open('e.txt',mode='wt',encoding='utf-8') as f:
# f.write(data)
# 檔案修改的方式二:
# 思路:
# 1. 以讀的方式開啟原始檔,以寫的方式開啟乙個臨時檔案
# 2. 從原始檔中讀取一行內容,修改完後再寫入臨時檔案,迴圈往復直到原始檔全部讀完
# 3. 刪掉原始檔,將臨時檔案重新命名為源檔名
# 優點:不會過多地占用記憶體
# 缺點:在檔案修改期間硬碟會同時存在兩份資料
# import os
# with open('e.txt',mode='rt',encoding='utf-8') as read_f,\
# open('.e.txt.swap',mode='wt',encoding='utf-8') as write_f:
# for line in read_f:
# write_f.write(line.replace('dsb','alex'))
# # os.remove('e.txt')
# os.rename('.e.txt.swap','e.txt')
4 檔案操作
學習目標 1 了解linux的目錄結構 2 掌握linux的目錄操作命令 學習過程 一 linux目錄的基本結構 根目錄,系統中所有的目錄都是從根目錄開始。bin 存放常用命令。boot 引導核心的程式目錄。dev 外部裝置名。etc etcetera 系統管理所要的配置檔案和子目錄。home 存放...
4 檔案操作
對檔案操作 對檔案操作就是對檔案的控制代碼的操作,通過open函式得到檔案的控制代碼。一 r,w,a,x,模式 r 只有讀操作,檔案必須存在。讀的時候預設游標在最開始讀,沒有寫操作,encoding在進行解碼操作。w 無法讀取檔案,只是寫操作,檔案存在覆蓋寫,檔案不存在的話,建立檔案再寫。encod...
python學習記錄(三) 檔案操作
操作檔案必須進行的三個步驟 開啟檔案 對檔案進行操作 讀,寫 關閉檔案 python中開啟檔案使用的是open函式,需要傳入檔案開啟的模式,所有檔案開啟模式如下 檔案開啟模式描述r 以唯讀模式開啟檔案,並將檔案指標指向檔案頭 如果檔案不存在會報錯 w以只寫模式開啟檔案,並將檔案指標指向檔案頭 如果檔...