最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python文件操作和數(shù)據(jù)格式詳解(簡單簡潔)

 更新時間:2022年05月27日 09:26:30   作者:Philosophy7  
文本處理是腳本語言的強項,下面這篇文章主要給大家介紹了關于Python文件操作和數(shù)據(jù)格式的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、文件操作

前言:

什么是計算機的流?

"流"指的是在不同的輸入/輸出等設備(鍵盤、內存、顯示器、音響等)之間進行傳遞數(shù)據(jù)。

例如:在Python中使用input()函數(shù),就會產生數(shù)據(jù)經(jīng)過鍵盤流輸入到存儲器。

print() 就會有數(shù)據(jù)從存儲器中流出到屏幕。所以流實際上就是一個字節(jié)序列。

就如同管道中的水 “流來流去”;

1、文件的基本操作

Python中可以通過內置函數(shù)open()打開文件 函數(shù)定義格式如下:
open(file,mode,buffering)

參數(shù)說明:

  • file : 表示文件的路徑
  • mode : 文件打開的模式
  • buffering : 設置訪問文件的緩沖方式,若設置
  • 0 : 表示非緩沖方式
  • 1 : 每次緩沖衣阿華那個世俗據(jù)
  • 大于1 : 表示使用給定值作為緩沖區(qū)的大小

文件打開模式

打開模式含義說明
r/rb只讀模式以只讀的方式打開文本文件/二進制文件,如果文件不存在或找不到,open()調用失敗
w/wb只寫模式以只寫的方式打開文本文件/二進制文件,若文件不存在,則創(chuàng)建文件;文件已存在 ,清空文件。
a/ab追加模式以只寫的方式打開文本文件/二進制文件,只允許在文件末尾追加數(shù)據(jù),若文件不存在創(chuàng)建文件
r+/rb+讀取模式以讀/寫的方式打開文本文件/二進制文件,如果文件不存在,open()調用失敗
w+/wb+寫入模式以讀/寫的方式打開文本文件/二進制文件**,如果文件存在,則清空文件**
a+/ab+追加模式以讀/寫的方式打開文本文件/二進制文件,只允許在文件末尾添加數(shù)據(jù),若文件不存在,則創(chuàng)建文件。

?? 到了寫代碼環(huán)節(jié),兄弟們操練起來。耍 ! 耍 ! 整起 !

'''
 演示 : Python中內置函數(shù)open() 打開文件
 文件的操作屬于IO操作 記得釋放資源
'''
file1 = open('a.txt') #只讀模式打開文件a.txt 若文件不存在,則報異常FileNotFoundError
file2 = open('b.txt','w') #只寫模式打開文件b.txt 文件不存在則創(chuàng)建 文件存在則覆蓋
file3 = open('c.txt','w+') #讀寫方式打開 文件不存在則創(chuàng)建 文件存在則覆蓋

#釋放資源
file3.close()
file2.close()
file1.close()

?? 每次使用文件都得調用open()和close(),很是麻煩,若打開和關閉的操作次數(shù)較多,容易忘記close()次操作,就會造成資源的浪費。為此Python引入了 with語句實現(xiàn)close()方法的自動調用。

定義格式如下:

with open('a.txt') as file:
	代碼段

2、讀文件

常用的方法

方法描述
read()從指定文件中讀取指定字節(jié)的數(shù)據(jù)
readline()從指定文件中讀取一行數(shù)據(jù)
readlines()從指定文件中的數(shù)據(jù)一次讀出,并將每一行視為一個元素,存儲到列表中。

?? 到了寫代碼環(huán)節(jié),兄弟們操練起來。耍 ! 耍 ! 整起 !

file = open('a.txt','r')

#讀文件
#str_ = file.read(5) # 讀取五個字符
#print(str_)

#readline
# str2 = file.readline()
# print(str2) # 第1次讀取 讀取第一行
# str3 = file.readline()
# print(str3) # 第二次讀取 讀取第二行

#readliness
str4 = file.readlines()
print(str4) # 返回的是一個列表

file.close()

3、寫文件

常用的方法

方法描述
write()方法中的參數(shù)str表示要寫入文件的字符串
#1.打開文件
file = open('b.txt','w+') #以讀寫方式打開文件

#2.寫入數(shù)據(jù)
file.write("Hello \nWorld")

#3.釋放資源
file.close()

"""
問題:
    有的開發(fā)環(huán)境可能搭配在緩沖設備當中 所以調用write()方法可能出現(xiàn)數(shù)據(jù)未寫入
解決:
    這里介紹三種方式:
            1.修改open函數(shù)中的buffering參數(shù)
            2.刷新緩沖區(qū)
            3.釋放資源
"""
#1.修改open函數(shù)中的buffering參數(shù)
# file2 = open('demo.txt','w+',1)  # 設置為1 表示每次緩沖一行數(shù)據(jù)
# file2.write("Hello \nWorld")

#2.刷新緩沖區(qū)
# file3 = open('demo.txt','w+',encoding="utf-8")
# file3.write("你好 \n世界") #寫入中文會亂碼 這個時候指定編碼
# file3.flush() #默認情況下,緩沖區(qū)堆積滿了才會自動刷新,手動調用緩沖區(qū)將會被立即清空,將數(shù)據(jù)寫入到文件

#3.關閉文件
with open('demo.txt','w+',encoding="utf-8") as file4: #with open的方式將自動關閉文件
    file4.write("嗨嗨")
文件讀寫位置操作
"""
文件讀寫位置:
    Python中提供了獲取文件讀寫位置以及修改讀寫位置的方法,以實現(xiàn)位置隨機讀寫
    介紹一系列的方法:
        tell() 獲取文件當前的讀寫位置
        seek(offset,from) 控制文件的讀寫位置
            參數(shù)解釋:
                offset : 偏移量 即讀寫位置需要移動的字節(jié)數(shù)
                from : 指定讀寫位置   該參數(shù)的賦值分別為 0 1 2
                    0 : 從文件開頭
                    1 : 表示使用當前讀寫位置
                    2 : 文件末尾
"""
#演示上述
# with open('demo.txt','r+',encoding='utf-8') as file:
#     location = file.tell()
#     print(location)
#     str1 = file.read(5)
#     print(str1)

file2 = open('a.txt',encoding='utf-8')
file2.seek(5,0) #文件開頭進行偏移

#若打開的是文本文件 seek方法只允許相對于文件開頭移動位置 form參數(shù)為1 2時將報錯
# file2.seek(4,1) #io.UnsupportedOperation: can't do nonzero cur-relative seeks

#若要進行讀寫位置或文件末尾進行位移操作 要以二進制的形式打開文件
file3 = open("a.txt",'rb')
num3 = file3.seek(3,2) #16
print(num3)
file3.close()

4.os模塊的使用

除了Python內置函數(shù)外,os模塊中定義了文件操作相關的函數(shù),包括了刪除、創(chuàng)建、重命名等文件。使用之前先導入

import os

os模塊
import os #1.文件重命名 remove(oldName,newName) # os.rename('a.txt',
        'new.txt') #2.創(chuàng)建/刪除文件夾 # os.mkdir('create_dir')# 默認路徑下創(chuàng)建目錄 注意:
    目錄不能重名?。?否則將創(chuàng)建失?。。?!# os.rmdir('create_dir') #3.刪除文件 # os.remove(
        'b.txt') #4.獲取當前目錄 str = os.getcwd() print(str) #5.獲取目錄列表 list = os
    .listdir("./")#. / 表示當前目錄下 print(list)

5.文件的迭代

"""
什么是迭代?
    迭代就是一個過程的多次重復,Python中實現(xiàn)了__iter__()方法意味著對象都是可迭代對象(字典 序列、文件等等)
"""
file_name = input("請輸入文件名")
file = open(file_name,encoding="utf-8")
for f in file:
    print(f,end=" ")
file.close()

運行效果

二、JSON

什么是JSON
JSON簡介:JSON的全稱為JavaScript Object Nation(JavaScript 對象表示語法),
基于 ECMAScript,存放的是的類似于鍵值對,本質上來說是javascript的數(shù)據(jù)類型,是一種輕量級的數(shù)據(jù)交互格式
Python中提供對Json的支持
dumps() 將Python對象 --> JSON字符串
loads() JSON --> 對象

Python對象JSON對象
dictobject
list, tuplearray
str, unicodestring
int, long, floatnumber
Truetrue
Falsefalse
Nonenull
"""
什么是JSON
    JSON簡介:JSON的全稱為JavaScript Object Nation(JavaScript 對象表示語法),
    基于 ECMAScript,存放的是的類似于鍵值對,本質上來說是javascript的數(shù)據(jù)類型,是一種輕量級的數(shù)據(jù)交互格式
    Python中提供對Json的支持
        dumps() 將Python對象 --> JSON字符串
        loads() JSON --> 對象

"""
#導入json模塊
import json
#json格式數(shù)據(jù)
strList="[1,2,3,4]" #json數(shù)組
strDict='{"price":38.6,"author":"佚名"}'
print(type(strList)) #<class 'str'>
#json數(shù)組-->python列表
p_list=json.loads(strList)
print(p_list) #<class 'str'>
print(type(p_list),len(p_list)) #<class 'list'> 4

#json對象-->python字典
p_dict = json.loads(strDict)
print(p_dict,type(p_dict)) #<class 'dict'>
print('-'*60)
#json格式數(shù)據(jù)
listStr=[1,2,3,4] #python列表
tupleStr=(1,2,3,4)#元組
dictStr={"price":38.6,"author":"佚名"}

#python列表-->json字符串(數(shù)組)
list1 = json.dumps(listStr)
print(list1,type(list1)) #<class 'str'>

#python元組-->json數(shù)組
tuple1 = json.dumps(tupleStr)
print(tuple1,type(tuple1)) #<class 'str'>

#python字典-->json對象
dict1 = json.dumps(dictStr)
print(dict1) #{"price": 38.6, "author": "\u4f5a\u540d"} 默認使用acsii碼
print(type(dict1)) #<class 'str'>

dict2 = json.dumps(dictStr,ensure_ascii=False)
print(dict2)

總結

到此這篇關于Python文件操作和數(shù)據(jù)格式的文章就介紹到這了,更多相關Python文件操作和數(shù)據(jù)格式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • django drf框架中的user驗證以及JWT拓展的介紹

    django drf框架中的user驗證以及JWT拓展的介紹

    這篇文章主要介紹了django drf框架中的user驗證以及JWT拓展的介紹,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python列表生成式應用方式

    Python列表生成式應用方式

    這篇文章主要介紹了Python列表生成式應用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python實現(xiàn)全角半角轉換的方法

    Python實現(xiàn)全角半角轉換的方法

    這篇文章主要介紹了Python實現(xiàn)全角半角轉換的方法,很實用的方法,需要的朋友可以參考下
    2014-08-08
  • django中瀑布流寫法實例代碼

    django中瀑布流寫法實例代碼

    在本篇文章里小編給大家整理的是關于django中瀑布流寫法實例代碼以及相關知識點,有需要的朋友們學習參考下。
    2019-10-10
  • Python類的多繼承的搜索順序

    Python類的多繼承的搜索順序

    python和C++一樣,支持多繼承,本文主要介紹了Python類的多繼承的搜索順序,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • linux下python使用sendmail發(fā)送郵件

    linux下python使用sendmail發(fā)送郵件

    這篇文章主要為大家詳細介紹了linux下python使用sendmail發(fā)送郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 詳解Python獲取線程返回值的三種方式

    詳解Python獲取線程返回值的三種方式

    提到線程,你的大腦應該有這樣的印象:我們可以控制它何時開始,卻無法控制它何時結束,那么如何獲取線程的返回值呢?今天就和大家分享一下一些做法
    2022-07-07
  • Python中使用ipython的詳細教程

    Python中使用ipython的詳細教程

    ipython是一個非常流行的python解釋器,比python解釋器好用很多,本文重點給大家介紹Python中使用ipython的詳細教程,需要的朋友參考下吧
    2021-06-06
  • Pycharm運行程序時,控制臺輸出PyDev?console:starting問題

    Pycharm運行程序時,控制臺輸出PyDev?console:starting問題

    Pycharm運行程序時,控制臺輸出PyDev?console:starting問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • python?HTTP協(xié)議相關庫requests urllib基礎學習

    python?HTTP協(xié)議相關庫requests urllib基礎學習

    這篇文章主要介紹了python?HTTP協(xié)議相關庫requests urllib基礎學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06

最新評論

麻栗坡县| 阜新| 佛冈县| 双峰县| 芦溪县| 平舆县| 锡林浩特市| 布尔津县| 石狮市| 甘谷县| 苏州市| 延庆县| 潮州市| 资阳市| 阿坝| 牡丹江市| 河南省| 巨野县| 彭泽县| 紫云| 伽师县| 海淀区| 高邑县| 太白县| 平南县| 三门县| 瓮安县| 铜山县| 宜昌市| 新乐市| 湖北省| 吐鲁番市| 常山县| 天峨县| 新田县| 偏关县| 连云港市| 巢湖市| 芮城县| 南乐县| 怀仁县|