日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python学习12 文件的读写

發布時間:2023/12/13 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python学习12 文件的读写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目標

文件的打開和關閉

mode缺省情況下表示只讀r

文件的路徑

前面加個r’,代表其中的轉義字符不起作用

文件的打開方式



案例:實現文件拷貝的功能

將某一文件夾下的某一文件 保存在當前文件 所在目錄。

import os #讀取文件1 path='./file.txt' file=open(path,'r',encoding='utf-8') words=file.read() file.close()#寫入文件2 path2='./file2.txt' print(os.listdir('./')) file2=open(path2,'x',encoding='utf-8') file2.write(words) file2.close() #讀取文件2 file2=open(path2,'r',encoding='utf-8') print(file2.read()) file2.close()

文件路徑分割+os模塊

1.字符串

2.os模塊

案例:多個文件遞歸復制

文件復制:
設你的文件夾p1下包含多個文件,p2為空文件夾,編寫函數使其能將p1下的文件復制到p2中

寫法1:

# path1 = '../lesson12' # path2 = './path2' path1=input('請輸入要拷貝的文件路徑') path2=input('請輸入空的文件路徑') # 請輸入要拷貝的文件路徑D:\\School\\Undergraduate\\考研學習\\C語言 # 請輸入空的文件路徑C:\\Users\\DQ\Desktop\\test import osdef createFile(path1, path2):#注意:在這里不要指明編碼格式,因為有些文件過于復雜,可能字符集不能表示完#rb:以二進制的形式讀取file1 = open(path1, 'rb')words = file1.read()#wb以二進制的形式寫入文件,w:如果文件不存在會創建文件,如果文件存在就覆蓋文件file2 = open(path2, 'wb')file2.write(words)file1.close()file2.close()def copyFunction(path1, path2):oldPath = os.listdir(path1)for i in oldPath:oldPath = path1 + '/' + inewPath = path2 + '/' + iif os.path.isfile(oldPath):# 如果文件不存在才創建文件if not os.path.exists(newPath):createFile(oldPath, newPath)elif os.path.isdir(oldPath):# 如果是文件夾不存在才創建if not os.path.exists(newPath):# 創建文件夾os.mkdir(newPath)# 不管是否需要創建文件夾,都要遞歸新的文件夾路徑copyFunction(oldPath, newPath)copyFunction(path1, path2)

寫法2:

import os def copyFile(srcFile,destFile):fileInput=open(srcFile,mode='rb+')fileOutput=open(destFile,mode='wb+')fileOutput.write(fileInput.read())fileOutput.close()fileInput.close()def copyDir(srcDir,destDir):for s in os.listdir(srcDir):newPath = os.path.join(srcDir, s)destPath = os.path.join(destDir, s)if os.path.isdir(newPath):os.mkdir(destPath)copyDir(newPath,destPath)elif os.path.isfile(newPath):copyFile(newPath,destPath) srcDir=input("請輸入需要復制的文件夾:") destDir=input("請輸入目標空文件夾:") copyDir(srcDir,destDir)

案例:遞歸刪除多個文件

遍歷刪除含有多個文件的文件夾

# author:dq # project:PythonProject # date:2021年10月28日 # function:遍歷刪除含有多個文件的文件夾。 import ospath = 'D:/CodeProject/Python_DQ/PythonProject/pythonProject/lesson13/path2' #path=input('請輸入文件路徑')def delete(path):# 判斷文件是否存在if os.path.exists(path):# 如果是文件,就直接刪除if os.path.isfile(path):os.remove(path)# 如果是文件夾elif os.path.isdir(path):# 如果文件夾為空就就直接刪除if not os.listdir(path):os.rmdir(path)# 如果文件夾不為空,就進入新的文件夾遞歸else:for i in os.listdir(path):#拼接獲取新的文件路徑newPath=os.path.join(path,i)delete(newPath)#再逐一刪除外層的文件夾os.rmdir(path)delete(path)

CSV文件

關系型數據庫:表格,二維數據

CSV文件讀取與寫入(學習)

newline=‘’識別換行符,空字符串


使用代碼:

#author:dq #project:PythonProject #date:2021年11月01日 #function:csv文件的讀寫#讀取csv import csvpath='./information.csv' file=open(path,'w',encoding='utf-8',newline='') w=csv.writer(file)w.writerow(['name','age','gender']) w.writerow(['dq',20,'female']) w.writerow(['dd',20,'man']) w.writerow(['rwq',20,'female']) file.close()#寫入CSV file=open(path,'r',encoding='utf-8',newline='') r=csv.reader(file) for data in r:print(data)

將數據寫入內存(了解即可)


把print輸出的內容輸出到到文件流(內存)
print是輸出之后進行換行
file是一個文件對象

序列化和反序列化


序列化與反序列化:json

json序列化與反序列化的方法



案例代碼:

#author:dq #project:PythonProject #date:2021年11月01日 #function:序列化與反序列化:json#寫入 import json #dumps path='./name.txt' file=open(path,'w',encoding='utf-8')#寫入內容,有會被覆蓋 names=['dq','dd','java'] content=json.dumps(names) file.write(content) file.close()#dump file=open(path,'w',encoding='utf-8')#追加a+ names=['dq','java','java'] content=json.dump(names,file) file.close()#讀取 #load file=open(path,'r',encoding='utf-8') read=json.load(file) file.close() print(read,type(read))#['dq', 'java', 'java'] <class 'list'>#loads content='{"name":"dq","age":"18"}' p=json.loads(content) print(p,type(p))#{'name': 'dq', 'age': '18'} <class 'dict'>

序列化與反序列化:pickle




代碼:

#author:dq #project:PythonProject #date:2021年11月01日 #function:pickle序列化與反序列化 import pickle #序列化 #dumps names=['dq','java','Android'] byteContent=pickle.dumps(names) print(byteContent)#寫入文件 path='./pickle.txt' file=open(path,'wb') file.write(byteContent) file.close()#讀取文件 file_r=open(path,'rb') #readContent=file_r.read() readContent=pickle.load(file_r) print(readContent) file_r.close()


代碼:

#author:dq #project:PythonProject #date:2021年11月01日 #function:pickle序列化與反序列化 import pickle #序列化 #dumps names=['dq','java','Android'] byteContent=pickle.dumps(names) print(byteContent)#寫入文件 path='./pickle.txt' file=open(path,'wb') file.write(byteContent) file.close()#讀取文件 file_r=open(path,'rb') #readContent=file_r.read() readContent=pickle.load(file_r) print(readContent) file_r.close()

json和pickle的區別

自動關閉文件:with關鍵字



標準輸出和輸入(了解)



總結

以上是生活随笔為你收集整理的Python学习12 文件的读写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。