淺談Open.Json.pickle.Os

一、Open函數使用

open函數是 Python 中用于打開文件的內置函數,它返回一個文件對象,該文件對象提供了對文件進行讀寫操作的方法。使用?open?函數時,通常需要指定至少兩個參數:文件名(file)和模式(mode)。模式決定了文件是以只讀、只寫、追加、讀寫等哪種方式被打開的。

file_object = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file:必需,文件路徑(相對或絕對路徑)。

mode:可選,文件打開模式。默認為 'r',即只讀模式。其他常用模式包括 'w'(只寫,文件存在則覆蓋)、'a'(追加,寫入的數據會被追加到文件末尾)、'r+'(讀寫)等。

buffering:可選,設置緩沖策略。

encoding:可選,用于指定文件的編碼方式,如 'utf-8'。

errors:可選,指定編碼和解碼錯誤時的處理方式。

newline:可選,控制跨平臺行尾符的行為。

closefd:可選,如果文件描述符是用?os.open()?打開的,并且傳遞給了?open()closefd?應該為?False,否則?open()?關閉文件時也會關閉文件描述符。

opener:可選,一個可調用對象,用于打開文件(通常是底層系統調用),通常不需要。

讀取文件

# 打開文件并讀取內容  
with open('example.txt', 'r', encoding='utf-8') as file:  content = file.read()  print(content)  # 使用with語句可以自動管理文件的打開和關閉

?寫入文件

# 打開文件并寫入內容  
with open('output.txt', 'w', encoding='utf-8') as file:  file.write('Hello, World!')  # 如果文件已存在,'w' 模式會覆蓋原有內容

?追加內容到文件

# 打開文件并追加內容  
with open('output.txt', 'a', encoding='utf-8') as file:  file.write('\nAnother line.')  # 'a' 模式會在文件末尾追加內容,不會覆蓋原有內容

讀寫文件

# 打開文件進行讀寫  
with open('example.txt', 'r+', encoding='utf-8') as file:  content = file.read()  print(content)  file.write('\nSome new content.')  # 注意:'r+' 模式時,如果文件不存在會拋出 FileNotFoundError

二、Json與pickle

序列化,將python數據結構 轉換為字符串;反序列化,將字符串 轉換為python數據結構 方便解析。

json是一種輕量級數據格式,適用與所有編程語言。

json序列化

1.方式一:dumps,第一步,序列化成字符串,第二步,將字符串寫入文件。

datas = {"user": [{"id": 101, "un": "張三", "pwd": "123456"}],"student": [],"z": None
}
datas_str = json.dumps(datas)
with open("./示例.txt", 'w') as f:f.write(datas_str)

2.方式二:dump,一步完成,把序列化結果寫入文件‘。

with open("./示例.txt", 'w') as f:json.dump(datas, f)

?json反序列化

1.方式一:loads,第一步,讀取文件內容,返回字符串,第二步,將字符串反序列化為python數據結構。

with open("./data.txt", "r") as f:datas = json.load(f)first_user = datas["user"][0]print(first_user.get("un"), first_user.get("pwd"))

2.方式二:load,一步完成,把文件內容反序列化成python數據結構。

with open("./data2.txt", "rb") as f:data = pickle.load(f)

三、Os模塊

Os模塊全稱操作系統模塊。

相關指令:

os.curdir:當前路徑

import osprint(os.curdir)
#結果:.

os.pardir:上級路徑

import osprint(os.aprdir)
#結果:..

os.chdir:更改路徑

os.listdir:當前路徑下文件信息

import os
print(os.listdir("d:\\測試文件"))
#結果:['01.txt', '21.txt']

os.mkdir:創建文件夾

import os
os.mkdir("d:\\測試文件\\創建文件夾測試")

?

os.rmdir:刪除文件夾

import os
os.rmdir("d:\\測試文件\\創建文件夾測試")

?

os.cpu.count:cpu核心參數

import os
print(os.cpu_count())
#結果:4

os.path模塊

os.path.exists:路徑或者文件是否存在(返回True或False)

import os
print(os.path.exists("d:\\測試文件"))
#結果:True

os.path.isfile:是否為文件(返回True或False)

import os
print(os.path.isfile("d:\\測試文件\\01.txt"))
#結果:True

os.path.isdir:是否為路徑(返回True或False)

import os
print(os.path.isdir("d:\\什么文件"))
#結果:False

os.path.split:分割最后一部分和前面路徑

import os
print(os.path.split("d:\\測試文件\\測試文件2\\01.txt"))
#結果:('d:\\測試文件\\測試文件2', '01.txt')

os.path.join:將多個部分組合成一個路徑

import os
path = os.path.join("d:", "one", "two", "tree.txt")

os.path.abspath:絕對路徑,abspath(os.curdir)

import os
print(os.path.abspath("d:\\測試文件\\創建文件夾測試"))
#結果:d:\測試文件\創建文件夾測試

os.path.dirname:當前路徑的父路徑

import os
print(os.path.dirname("d:\\測試文件\\創建文件夾測試"))
#結果:d:\測試文件

__file__:獲取當前文件

import os
print(os.path.dirname(__file__))

總結

Open.Json.pickle.Os是python開發過程中比較核心的內容。我們在學習過程中應當更加注意!

制作不易,多多點贊收藏支持哦!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/46354.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46354.shtml
英文地址,請注明出處:http://en.pswp.cn/web/46354.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【網絡工具】Charles 介紹及環境配置

?個人博客:Pandaconda-CSDN博客 📣專欄地址:http://t.csdnimg.cn/iAmAo 📚專欄簡介:在這個專欄中,我將會整理一些工作或學習中用到的工具介紹給大家~ 📘Charles 系列其它文章:【網絡…

Git操縱本地倉庫和遠程倉庫

git是一個代碼托管的平臺,我們可以對我們的代碼進行分支 推送提交 打標簽等等操作,而且git使用過程中也是支持一些linux語言的 比如cd呀 touch mkdir啊等等等 git的具體安裝過程就不再贅述 我個人認為 好多東西就是 代碼也好 文字 文檔 也好&…

【C語言】結構體,枚舉,聯合超詳解!!!

目錄 結構體 結構體聲明 結構體成員的訪問 結構體自引用 結構體變量定義,初始化,傳參 結構體內存對齊 位段 枚舉 聯合(共用體) 結構體 結構體聲明 1. 概念 1. 結構體是一些值的集合,這些值稱為成員變量。 2. 結構體的每個成員可…

長難句打卡7.15

The trend was naturally most obvious in those areas of science based especially on a mathematical or laboratory training, and can be illustrated in terms of the development of geology in the United Kingdom 這一趨勢自然在以數學或實驗室訓練為基礎的科學領域里…

Unlink

Unlink 原理 我們在利用 unlink 所造成的漏洞時,其實就是對 chunk 進行內存布局,然后借助 unlink 操作來達成修改指針的效果。簡單回顧一下 unlink 的目的與過程,其目的是把一個雙向鏈表中的空閑塊拿出來(例如 free 時和目前物理…

Leetcode二分搜索法淺析

文章目錄 1.二分搜索法1.1什么是二分搜索法?1.2解法思路 1.二分搜索法 題目原文: 給定一個 n 個元素有序的(升序)整型數組 nums 和一個目標值 target ,寫一個函數搜索 nums 中的 target,如果目標值存在返…

從PyTorch官方的一篇教程說開去(1 - 初心)

原文在此,喜歡讀原汁原味的可以自行去跟,這是一個非常經典和有學習意義的例子,在此向老爺子們致敬 - https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html 開源文化好是好,但是“公地的悲哀”這點避不開…

每天一個數據分析題(四百三十七)- 統計量

若x1、x2、x3取自某總體的樣本,當期望a已知,方差c未知時,則以下不是統計量的是 A. x1x2x3 B. min{x1,x2,x3} C. a(x1x2)/2 D. (x1x2x3)/c 數據分析認證考試介紹:點擊進入 題目來源于CDA模擬題庫 點擊…

用c語言實現一個alexnet

在C語言中實現一個完整的AlexNet神經網絡是一個復雜的任務,涉及大量的矩陣運算和卷積操作。這個示例代碼將涵蓋AlexNet的主要組件,包括卷積層、ReLU激活函數、池化層和全連接層。 由于C語言本身沒有像Python的NumPy那樣的矩陣庫,我們需要自己編寫矩陣運算函數。另外,C語言…

高效運維:構建全面監控與自動化管理體系

在當今的數字化時代,運維管理已成為企業IT架構中不可或缺的一環。它不僅關乎系統的穩定運行,更直接影響到業務的響應速度、故障處理時間以及客戶滿意度等多個方面。因此,構建一套全面監控與自動化管理體系,對于提升企業運維效率、…

無人機之多旋翼與固定翼的區別

多旋翼無人機和固定翼無人機是無人機技術中的兩種主要形式,各自有獨特的優勢和應用場景。 一、飛行原理與結構 多旋翼無人機:依靠多個旋翼產生升力來平衡飛行器的重力,通過改變每個旋翼的轉速控制飛行器的姿態和平穩,使其能夠垂…

C++ //練習 15.22 對于你在上一題中選擇的類,為其添加合適的虛函數及公有成員和受保護的成員。

C Primer(第5版) 練習 15.22 練習 15.22 對于你在上一題中選擇的類,為其添加合適的虛函數及公有成員和受保護的成員。 環境:Linux Ubuntu(云服務器) 工具:vim 代碼塊 class Shape {public:S…

PDF文件無法編輯?3步快速移除PDF編輯限制

正常來說,我們通過編輯器打開pdf文件后,就可以進行編輯了。如果遇到了打開pdf卻不能編輯的情況,那有可能是因為密碼或是掃描件的原因。小編整理了一些pdf文件無法編輯,以及pdf文件無法編輯時我們要如何處理的方法。下面就隨小編一起來…

[word] word如何編寫公式? #微信#知識分享

word如何編寫公式? word如何編寫公式?Word中數學公式是經常會使用到的,若是要在文檔中錄入一些復雜的公式,要怎么做呢?接下來小編就來給大家講一講具體操作,一起看過來吧! 方法一:…

stm32學習:(寄存器3)系統架構

時鐘系統 時鐘樹 在STM32中有3種不同的時鐘源用來驅動系統時鐘(SYSCLK): HSI振蕩器時鐘(High Speed Internal oscillator,高速內部時鐘)HSE振蕩器時鐘(High Speed External(Oscillator / Clock&#xff…

Ruby爬蟲技術:深度解析Zhihu網頁結構

在互聯網時代,數據的價值日益凸顯,尤其是在社交媒體和問答平臺如Zhihu(知乎)上,用戶生成的內容蘊含著豐富的信息和洞察。本文將深入探討如何使用Ruby爬蟲技術來解析Zhihu的網頁結構,并獲取有價值的數據。 …

linux service小例

linux service 測試 1.創建一個app // myapp.c // 間隔10s寫入時間到文件 #include <stdio.h> #include <time.h> #include <unistd.h> // 引入unix標準函數定義&#xff0c;如sleep()int main() {FILE *fp;time_t now;char buffer[80];// 打開文件以追加模…

啊?原來你也看環法賽!—VELO Angel Glide坐墊,與你共攀環法榮耀之路!

當七月的熱浪席卷賽道&#xff0c;環法自行車賽&#xff08;Tour de France&#xff09;的戰鼓再次響起&#xff0c;挑戰與夢想交織的火花在每一寸賽道上綻放。自1903年首屆賽事以來&#xff0c;環法已成為全球最具聲望的自行車賽事&#xff0c;吸引著無數頂尖騎手和觀眾的目光…

c語言程序環境和預處理

test.c(源文件) --> 編譯器 --> test.obj(目標文件,在debug里) 鏈接庫和多個目標文件 經過 鏈接器的處理&#xff0c;最終生成可執行程序.exe 編譯階段 預處理/預編譯階段 &#xff1a;1.頭文件的包含 2.define定義符號的替換&#xff0c;并刪除定義的符號 3.刪除注釋 這…

醫學影像歸檔與通訊系統源碼,C#PACS源碼,涵蓋放射、超聲、內鏡、病理、核醫學

醫學影像歸檔與通訊系統&#xff08;PACS&#xff09;系統&#xff0c;是一套適用于從單一影像設備到放射科室、到全院級別等各種應用規模的醫學影像歸檔與通訊系統。PACS集患者登記、圖像采集、存檔與調閱、報告與打印、查詢、統計、刻錄等功能為一體&#xff0c;有效地實現了…