修改py文件的編碼格式:在程序第一行寫 #encoding=gbk 修改為gbk編碼格式
file=open("a.txt","r") #"r"表示read
print(file.readlines()) #readlines()會將文本文件中的內容讀出且以列表形式展示
file.close()
source_file=open("logo.png",rb) #源文件以讀的二進制方式讀取
target_file=open("copy.png",wb) #目標文件以寫的二進制文件寫,目標文件是copy.png
target_file.write(source_file.read())
source_file.close()
target_file.close()
file=open('a.txt','r')
print(file.read())
print(file.readline())
print(file.readlines())#作為列表返回
tell()方法指針位置從0開始算
flush()方法之後仍然可以向文件寫入內容(因為沒有關閉文件),但close()方法之後不行
①若一個類中實現了特殊方法__enter__()和__exit__(),則該類遵守了上下文管理協議,該類的實例對象稱為上下文管理器
②離開運行時上下文,會自動調用上下文管理器的特殊方法__exit__()進行退出
with open("c.txt","r") as file: #相當於file=open("c.txt","r")
print(file.read()) #不用再寫file.close(),因為離開with語句塊時自動關閉文件資源
#with語句實現文件的復制
with open("a.png","rb") as source_file:
with open("b.png","wb") as target_file:
target_file.write(source_file.read())
import os
os.system("notepad.exe") #打開記事本,也可在WIN中輸入notepad
os.system("calc.exe") #打開計算器,也可在WIN中輸入
#os模塊也可直接調用可執行文件
該部分函數和ubuntu系統的終端命令又相似
該部分一般用在辦公自動化
import os
print(os.getcwd())
lst=os.listdir("../chap15") #listdir()函數返回列表,".."表示上一級目錄
print(lst)
os.mkdir(newdir) #創建目錄
os.makedirs("/a/b/c") #創建多級目錄
os.rmdir(newdir) #刪除目錄
os.removedirs("a/b/c") #刪除多級目錄
import os.path
print(os.path.abspath('demo3.py'))#獲取demo3.py文件的絕對路徑
print(os.path.exists('demo13.py'),os.path.exists('12.txt'))#結果返回True/False
print(os.path.join('E:\\python','demo6.py')) #前後進行拼接即E:\python\demo6.py
print(os.path.split('E:\\vippython\\chapter11\\demo.py'))#將文件路徑和文件名分開即('E:\\vippython\\chapter11','demo.py')
print(os.path.splitext('demo4.py'))#輸出{'demo4','.py'}
print(os.path.basename('E:\\vippython\\chapter11\\demo.py'))#輸出demo.py,從路徑中提取文件名
print(os.path.dirname('E:\\vippython\\chapter11\\demo.py'))#輸出E:\vippython\chapter11,從路徑中提取目錄,不包括文件名
print(os.path.isdir('E:\\vippython\\chapter11\\demo.py'))#輸出False,因為demo.py不是路徑名
在 辦公自動化 中剛開始學的就是 文件處理
#列出指定目錄下的所有.py文件
import os
path=os.getcwd() #獲取當前路徑,當然也可以指定相應路徑
lst=os.listdir(path)
for filename in lst:
if filename.endswith('.py'):
print(filename)
#逐次獲取主目錄和子目錄下的對應目錄路徑,目錄名,文件名
import os
path=os.getcwd()#獲取當前路徑,也可以指定路徑
lst_files=os.walk(path)
for dirpath,dirname,filename in lst_files: #會逐層逐次訪問主目錄和子目錄下的路徑,目錄名,文件名
print(dirpath) #輸出當前目錄的路徑
print(dirname) #輸出當前目錄下的子目錄名
print(filename) #輸出當前目錄下的文件名不是子目錄名
第二個代碼塊中,用到了 os模塊中重要的方法walk(), 該方法可以遞歸遍歷主目錄下的文件以及主目錄中子目錄下的文件