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

歡迎訪問 生活随笔!

生活随笔

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

python

python持久化存储文件操作

發布時間:2024/9/3 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python持久化存储文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、 文件操作介紹

日常中的數據存儲在紙上, 而計算機的數據存儲在哪里呢? —硬盤上

1. 文件的作用

一個程序在運行過程中用了九牛二虎之力終于計算出了結果,試想一下如果不把這些數據存放起來,相比重啟電腦之后,“哭都沒地方哭了”。 默認數據是加載到內存中,結果也是保存到內存中, 程序執行結束,所有的數據釋放。

2.文件的打開讀寫關閉

文件的打開模式

要讀取二進制文件,比如圖片、視頻等等,用’rb’, ‘wb’, 'ab’等模式打開文件即可

# 1.打開文件 """ mode:r:只能讀文件w:只能寫入(清空文件內容)a+:讀寫(追加) """ f = open('doc/hello.txt',mode='a') # 2.文件的讀寫操作 f.write('\nhello python') # 3. 文件的關閉 f.close()

文件最初內容:

代碼運行結果:

3.File對象的屬性:

4.File對象的常用方法

5. 指針定位

seek(offset, from)有2個參數: offset:偏移量 from:方向
0:表示文件開頭;
1:表示當前位置;
2:表示文件末尾
1). 把位置設置為:從文件開頭,偏移5個字節
2). 把位置設置為:文件最開始
3). 把位置設置為:文件最末尾

6.文件的關閉

方法一: 調用close()方法關閉文件。文件使用完畢后必須關閉,因為文件對象會占用操作系統的資源,
并且操作系統同一時間能打開的文件數量也是有限的:

方法二: Python引入了with語句來自動幫我們調用close()方法

""" with 語句 """ with open('doc/test.txt','w+') as f: #打開一個文件,如果不存在的話創建w+ 保存為ff.write('hello world\n') #寫入文件f.seek(0,0) #移動指針位置到文件最開始#f.seek(0,2) #移動指針位置到文件末尾print("當前指針位置為:",f.tell())print(f.read()) #讀取文件內容

代碼運行結果:

二、os模塊

os,語義為操作系統,處理操作系統相關的功能,可跨平臺。 比如顯示當前目錄下所有文件/刪除某個文件/獲取文件大小……

1.關于操作系統

import os import platform # 1.獲取操作系統類型 print(os.name) # 2.獲取主機信息,windows系統使用platform模塊,如果是linux系統直接使用os模塊 """ try: 可能出現報錯的代碼 excpt:可能出現異常,執行的內容 finally:是否有異常,都會執行的內容 """ try:uname = os.uname() except Exception:uname = platform.uname() finally:print(uname) # 3.獲取系統的環境變量 envs = os.environ # os.environ.get('PASSWORD') 通過key值獲取環境變量對應的value值 print(envs)

代碼運行結果:

2.關于路徑

# 1.判斷是否為絕對路徑 print(os.path.isabs('D:/python/運維項目/doc/test.txt')) print(os.path.isabs('test.txt')) # 2.生成絕對路徑 print(os.path.abspath('D:/python/運維項目/doc/test.txt')) print(os.path.abspath('test.txt')) # 3.目錄名和文件名的拼接 #os.path.dirname獲取某個文件對應的目錄名 #__file__是指當前文件 #join 拼接,將目錄和文件名拼接起來 BASE_DIR = os.path.dirname(__file__) setting_file = os.path.join(BASE_DIR,'dev.conf') print(setting_file) # 4.獲取目錄名或者文件名 filename = 'D:/python/運維項目/doc/test.txt' print(os.path.basename(filename)) print(os.path.dirname(filename))

代碼運行結果:

3.關于文件創建和刪除

os模塊中的rename()可以完成對文件的重命名操作。
rename(需要修改的文件名, 新的文件名)

os模塊中的remove()可以完成對文件的刪除操作
remove(待刪除的文件名)

# 1.創建目錄/刪除目錄 # mkdir -p sun/sdasd os.mkdirs('sun/ss') #遞歸創建目錄 os.mkdir('sun') #創建單個目錄 os.rmdir('sun') #刪除目錄 # 2.創建文件/刪除文件 #win不支持 os.mknod('sun/ok.txt') os.remove('sun/ok.txt') # 3.文件重命名(mv) os.rename('sun/ok.txt','sun/test.txt') # 4.判斷文件或者目錄是否存在 print(os.path.exists('test.txt')) # 5.分離后綴名和文件名 print(os.path.splitext('hello.txt')) print(os.path.split('hello.txt')) # 6.將目錄名和文件名分離 print(os.path.split('D:/python/運維項目/doc/test.txt'))

三、json模塊詳解

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于ECMAScript的一個子集。

JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C、C++、Java、JavaScript、Perl、Python等)。

這些特性使JSON成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(一般用于提升網絡傳輸速率)。

python類型數據和JSON數據格式互相轉換規則


python 中str類型到JSON中轉為unicode類型,None轉為null,dict對應object;
pyhton中的集合不能轉成json格式。

1.將python對象編碼成json字符串

import json # 1.將python對象編碼成json字符串 users = {'name':'sun','age':18,'city':'西安'} json_str = json.dumps(users) with open('doc/test.json','w') as f:json.dump(users, f , ensure_ascii=False,indent=4)print('存儲成功') print(json_str,type(json_str))

代碼運行結果:

2.將json字符串解碼成python對象

with open('doc/test.json') as f:python_obj = json.load(f)print(python_obj,type(python_obj))

代碼運行結果:

四、pandas模塊

1.打開交互式terminal安裝模塊

pip install pandas -i https://pypi.douban.com/simple

2.安裝對excel文件操作所需要的模塊

>pip install openpyxl -i https://pypi.douban.com/simple

3.轉換代碼:

import pandashosts = [{'host':'1.1.1.1', 'hostname':'server1', 'idc':'ali'},{'host':'1.1.1.2', 'hostname':'server2', 'idc':'huawei'},{'host':'1.1.1.3', 'hostname':'server3', 'idc':'tengxun'},{'host':'1.1.1.4', 'hostname':'server4', 'idc':'wangyi'}, ] #轉換數據類型 df = pandas.DataFrame(hosts) print(df) #存儲到excle文件中 df.to_excel('doc/hosts.xlsx')

代碼運行結果:

生成的excel文件

五、詞頻統計練習題

""" 技能需求:1. 文件操作2. 字符串的分割操作3. 字典操作 功能需求:詞頻統計1. 讀取song.txt文件 with open(filename) as f: content=f.read()2. 分析文件中的每一個單詞,統計每個單詞出現的次數。{"hello":2, "python":1, "java":1}- 分析文件中的每一個單詞content = "hello python hello java"words = content.split()- 統計每個單詞出現的次數- {"hello":2, "python":1, "java":1}# words = ['hello', 'python', 'hello', 'java']""" with open('doc/song.txt') as f: content=f.read() words = content.split() result = {} for i in words:if i not in result:result[i] =1else:result[i] +=1 import pprint pprint.pprint(result) # 統計出現次數最高的五個單詞 from collections import Counter counter = Counter(i) result = counter.most_common(5) print(result)

總結

以上是生活随笔為你收集整理的python持久化存储文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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