中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

龍崗營銷網(wǎng)站建設(shè)公司網(wǎng)站建設(shè)深圳公司

龍崗營銷網(wǎng)站建設(shè)公司,網(wǎng)站建設(shè)深圳公司,網(wǎng)站開發(fā)精品課程,中國蔬菜網(wǎng)網(wǎng)站建設(shè)電話一、文件指針 python中嚴格來說沒有指針這個說法,但有指針這個用法的體現(xiàn)。指針概念常用于c語言、c語言中 在Python的文件操作中,文件指針(也稱為文件游標或文件句柄的位置)是一個內(nèi)部標記,它指示了當(dāng)前文件操作的讀…

一、文件指針

python中嚴格來說沒有指針這個說法,但有指針這個用法的體現(xiàn)。指針概念常用于c語言、c++語言中

在Python的文件操作中,文件指針(也稱為文件游標或文件句柄的位置)是一個內(nèi)部標記,它指示了當(dāng)前文件操作的讀寫位置,文件指針在打開文件時初始化,并隨著文件的讀寫操作而移動

文件指針的行為:

1、打開文件:當(dāng)使用open()函數(shù)打開文件時,文件指針默認位于文件的開頭(對于文本文件是第一個字符之前,對于二進制文件是第一個字節(jié)之前)

2、讀取文件:當(dāng)執(zhí)行讀取操作(如read()、readline()或readlines())時,文件指針會向前移動到讀取內(nèi)容的末尾

3、寫入文件:在寫入操作(如write())中,文件指針會移動到寫入內(nèi)容的末尾,如果文件是以追加模式('a'或'a+')打開的,文件指針會首先移動到文件的末尾

4、文件指針的位置:可以使用 tell() 方法獲取當(dāng)前文件指針的位置(以字節(jié)為單位)

5、移動文件指針:使用?seek()?方法可以改變文件指針的位置。seek() 方法接受一個偏移量(可以是正數(shù)或負數(shù))和一個可選的基準位置(默認為文件的開頭,但也可以是文件的末尾或當(dāng)前位置)

eg:以下是一個簡單的示例,展示了如何使用文件指針來讀取和寫入文件

# 打開文件進行讀寫操作
with open('example.txt', 'w+') as file:# 寫入一些內(nèi)容到文件file.write('Hello, World!\n')# 獲取當(dāng)前文件指針的位置(應(yīng)該位于文件末尾)position = file.tell()print(f'Current file position: {position}')  # 輸出應(yīng)該是文件的字節(jié)長度,例如14# 將文件指針移回文件的開頭file.seek(0)# 讀取文件內(nèi)容content = file.read()print('File content:')print(content)  # 輸出: Hello, World!# 再次獲取文件指針的位置(現(xiàn)在應(yīng)該在文件末尾)position = file.tell()print(f'Current file position after reading: {position}')  # 輸出應(yīng)該是文件的字節(jié)長度# 注意:當(dāng)使用with語句時,文件會在塊結(jié)束時自動關(guān)閉,無需調(diào)用close()方法。

輸出內(nèi)容:

Current file position: 15
File content:
Hello, World!

?注意事項:

1、在文本模式下,tell()方法返回的是字符的索引(對于UTF-8編碼,一個字符可能對應(yīng)一個或多個字節(jié)),在二進制模式下,它返回的是字節(jié)的索引

2、使用seek()方法時,如果文件是以文本模式打開的,偏移量應(yīng)該對應(yīng)于字符數(shù)(盡管底層實現(xiàn)可能使用字節(jié)),如果文件是以二進制模式打開的,偏移量應(yīng)該對應(yīng)于字節(jié)數(shù)

3、在某些情況下,特別是在涉及非ASCII字符和混合編碼時,文本模式下的seek()和tell()可能會表現(xiàn)得不如預(yù)期,在這些情況下,使用二進制模式可能更為可靠

二、文件定位操作

2.1? tell()&?seek()

tell():顯示文件內(nèi)當(dāng)前位置,即文件指針當(dāng)前位置

seek(offset,whence):移動文件讀取指針到指定位置

offset:偏移量,表示要移動的字節(jié)數(shù)

whence:起始位置,表示移動字節(jié)的參考位置,默認是0,0代表文件開頭作為參考位置,1代表當(dāng)前位置作為參考位置,2代表將文件結(jié)尾作為參考位置

seek(0,0)就會把文件指針移到文件開頭

eg:

我們在 py1文件夾中新建一個文件名為 example.txt,如下圖所示:

f = open('example.txt','w+')  # 可讀可寫,如果存在文件,覆蓋已有文件內(nèi)容
f.write("hello Python!")  # 寫入hello Python!
pos = f.tell()   # 顯示文件內(nèi)當(dāng)前位置,即文件指針當(dāng)前位置
print('當(dāng)前文件指針所在的位置:',pos)
f.seek(0,0)  # 把f文件指針移到開頭
print('移到后文件指針所在的位置:',f.tell())
print(f.read())
f.close()

輸出內(nèi)容:

當(dāng)前文件指針所在的位置: 13
移到后文件指針所在的位置: 0
hello Python!

2.2 with open

作用:代碼執(zhí)行完,系統(tǒng)會自動調(diào)用 f.close() ,可以省略文件關(guān)閉步驟

eg:

with open("example.txt","w") as f:   # f是文件對象f.write("emmm")
# 檢驗一下with open是否真的自動關(guān)閉,用f.closed判斷print(f.closed)    # 輸出:False,說明此時還未關(guān)閉
print(f.closed)   # 輸出:True,說明此時已經(jīng)關(guān)閉

三、編碼格式

3.1 encoding編碼

注意:file 對象的 encoding 參數(shù)的默認值與平臺有關(guān),比如windows上默認字符編碼為GBK。
encoding 表示編碼集.根據(jù)文件的實際保存編碼進行獲取數(shù)據(jù),對于我們而言,使用更多的是utf-8

當(dāng)我們將中文寫入文件中時,如果沒有轉(zhuǎn)碼會發(fā)生亂碼的情況:

如下:

eg:

with open('example.txt','w') as f:f.write("君君18歲")

將產(chǎn)生亂碼:

采用encoding編碼可解決亂碼問題:

with open('example.txt','w',encoding='utf-8') as f:f.write("君君18歲")

example.txt 文件中亂碼情況得到解決:

?

當(dāng)讀取文件的時候也要注意轉(zhuǎn)碼,比如在example.txt 文件中有如下幾句話:

with open('example.txt',encoding='utf-8') as f:print(f.read())

輸出內(nèi)容:

君君18歲
哈哈哈哈哈
嘻嘻嘻嘻
不靈不靈

3.2 案例:圖片復(fù)制

先新建一個帶圖片的文件夾(本人在桌面上新建一個名為“圖片”的文件夾,里面有一張名為“圖片1” 的圖片)

1、讀取圖片

圖片是一個二進制文件,想要寫入必須要先拿到

2、寫入圖片

eg:

with open(r'C:\Users\31761\Desktop\圖片\圖片1.jpg',"rb") as file:     # r取消轉(zhuǎn)義字符,rb讀取二進制文件img = file.read()print(img)
# 將讀取到的內(nèi)容寫入到當(dāng)前文件中
with open(r"D:\Python project\py1\圖片1.jpg",'wb') as f:    # wb 寫入二進制文件f.write(img)

圖片已經(jīng)寫入相關(guān)路徑:?

?

四、目錄常用操作?

在Python中,處理文件和目錄的常用操作主要通過內(nèi)置的os模塊和pathlib模塊來完成。這兩個模塊提供了豐富的功能來創(chuàng)建、刪除、遍歷、修改目錄和文件。以下是一些常用的目錄操作示例:

導(dǎo)入模塊:import? os

1.文件重命名: os.rename (舊文件名,新文件名)
2.刪除文件: os.remove (日標文件名)
3.創(chuàng)建文件夾: os.mkdir (文件夾名)
4.獲取當(dāng)前目錄: os.getcwd ()
5.獲取目錄列表: os.listdir (目錄)
6.刪除文件夾: os.rmdir (文件夾名)

4.1 使用?os?模塊

1、獲取當(dāng)前工作目錄

import os
current_directory = os.getcwd()
print(current_directory)

2、更改當(dāng)前工作目錄

os.chdir('/path/to/new/directory')

3、列出目錄內(nèi)容

contents = os.listdir('.')  # '.' 表示當(dāng)前目錄
print(contents)

4、創(chuàng)建目錄

os.makedirs('/path/to/new/directory', exist_ok=True)  # exist_ok=True 表示如果目錄已存在則不拋出異常

5、刪除目錄

os.rmdir('/path/to/directory')  # 只能刪除空目錄
os.removedirs('/path/to/directory')  # 刪除多級空目錄
shutil.rmtree('/path/to/directory')  # 刪除目錄及其內(nèi)容,需要導(dǎo)入 shutil 模塊

6、檢查路徑是否存在

exists = os.path.exists('/path/to/directory')
print(exists)

7、檢查路徑是否是目錄

is_directory = os.path.isdir('/path/to/directory')
print(is_directory)

8、獲取目錄的絕對路徑

absolute_path = os.path.abspath('/path/to/directory')
print(absolute_path)

9、拼接路徑

new_path = os.path.join('/path', 'to', 'directory')
print(new_path)

4.2 使用?pathlib?模塊

pathlib?模塊提供了一個面向?qū)ο蟮穆窂讲僮鞣椒?#xff0c;使得路徑操作更加直觀和方便。

1、獲取當(dāng)前工作目錄

from pathlib import Path
current_directory = Path.cwd()
print(current_directory)

2、更改當(dāng)前工作目錄

# pathlib 沒有直接更改當(dāng)前工作目錄的方法,仍然需要使用 os.chdir
os.chdir('/path/to/new/directory')

3、列出目錄內(nèi)容

directory = Path('.')
contents = list(directory.iterdir())
for item in contents:print(item)

4、創(chuàng)建目錄

new_directory = Path('/path/to/new/directory')
new_directory.mkdir(parents=True, exist_ok=True)  # parents=True 表示創(chuàng)建多級目錄

5、刪除目錄

directory.rmdir()  # 只能刪除空目錄
# 刪除目錄及其內(nèi)容,需要遞歸刪除
for item in directory.rglob('*'):if item.is_dir():item.rmdir()else:item.unlink()
directory.rmdir()

6、檢查路徑是否存在

exists = Path('/path/to/directory').exists()
print(exists)

7、檢查路徑是否是目錄

is_directory = Path('/path/to/directory').is_dir()
print(is_directory)

8、獲取目錄的絕對路徑

absolute_path = Path('/path/to/directory').resolve()
print(absolute_path)

9、拼接路徑

new_path = Path('/path') / 'to' / 'directory'
print(new_path)

今天的分享就到這里了,希望能對大家有所幫助~

http://www.risenshineclean.com/news/4067.html

相關(guān)文章:

  • 做網(wǎng)站的價位附近廣告公司聯(lián)系電話
  • 北京網(wǎng)站制作培訓(xùn)班網(wǎng)站推廣的工作內(nèi)容
  • 2024年樓市大局已定做seo需要哪些知識
  • 怎么做網(wǎng)站結(jié)構(gòu)圖東莞seo建站哪家好
  • 西安網(wǎng)站設(shè)計開發(fā)人才百度開放云平臺
  • 明會紅網(wǎng)站網(wǎng)文推廣怎么做
  • 溫州展廳設(shè)計公司青島網(wǎng)絡(luò)工程優(yōu)化
  • 深圳模板網(wǎng)站建設(shè)友情鏈接交換方式有哪些
  • 百度網(wǎng)做網(wǎng)站嗎寧波外貿(mào)網(wǎng)站推廣優(yōu)化
  • 北滘網(wǎng)站建設(shè)公司網(wǎng)圖識別在線百度
  • 佛山廠家推廣優(yōu)化seo網(wǎng)絡(luò)推廣專員招聘
  • 我的世界搞頭怎么做的視頻網(wǎng)站網(wǎng)絡(luò)營銷組織的概念
  • 重慶平臺網(wǎng)站建設(shè)平臺推廣普通話的文字內(nèi)容
  • 邯鄲市城市建設(shè)局網(wǎng)站天津seo排名
  • 北京做百度網(wǎng)站建設(shè)深圳推廣網(wǎng)絡(luò)
  • seo網(wǎng)站排名優(yōu)化公司哪家百度文庫網(wǎng)頁版
  • 企業(yè)wap網(wǎng)站模板現(xiàn)在陽性最新情況
  • 安卓應(yīng)用下載seo入門視頻
  • 數(shù)商云公司簡介百度seo快速排名優(yōu)化服務(wù)
  • 做軟件下載網(wǎng)站違法嗎點擊器 百度網(wǎng)盤
  • 石家莊有那些網(wǎng)站開發(fā)公司太原網(wǎng)站建設(shè)制作
  • 政府部門網(wǎng)站建設(shè)南寧seo外包要求
  • 做網(wǎng)站怎么和廣告公司合作怎么推廣自己的網(wǎng)站
  • 龍華營銷型網(wǎng)站制作哪家好沈陽網(wǎng)頁建站模板
  • 一鍵優(yōu)化ppt某企業(yè)網(wǎng)站的分析優(yōu)化與推廣
  • 寧波建設(shè)網(wǎng)站公眾號關(guān)注百度搜索引擎優(yōu)化方案
  • 網(wǎng)站建設(shè)有什么出路互聯(lián)網(wǎng)服務(wù)平臺
  • 海南免稅店網(wǎng)上商城湖北搜索引擎優(yōu)化
  • 自己做網(wǎng)站要會什么營銷策劃思路
  • 國內(nèi)十大高端定制西服品牌百度搜索關(guān)鍵詞排名優(yōu)化技術(shù)