日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python文件讀寫操作方法

文件讀寫就是一種常見的IO操作,本篇文章重點(diǎn)為大家講解一下python的文件讀寫操作。

文件與文件路徑

  • 在 Windows 中,根文件夾名為 C:\,也稱為 C:盤。在 OS X 和 Linux中,根文件夾是/
  • 文件夾名稱和文件名在Windows和OS X 上是不區(qū)分大小寫的,但是在linux上是區(qū)分大小寫的。

在文件夾層次結(jié)構(gòu)中的一個(gè)文件

Windows 上的倒斜杠以及 OS X 和 Linux 上的正斜杠

在 Windows 上,路徑書寫使用倒斜杠作為文件夾之間的分隔符。但在 OS X 和Linux 上,使用正斜杠作為它們的路徑分隔符。如果想要程序運(yùn)行在所有操作系統(tǒng)上,在編寫 Python 腳本時(shí),就必須處理這兩種情況。

如果將單個(gè)文件和路徑上的文件夾名稱的字符串傳遞給它,os.path.join()就會(huì)返回一個(gè)文件路徑的字符串,包含正 確的路徑分隔符。

>>> import os
>>> os.path.join('usr','bin','spam')
'usr\\bin\\spam'

如果需要?jiǎng)?chuàng)建文件名稱的字符串,os.path.join()函數(shù)就很有用。這些字符串將傳遞給幾個(gè)文件相關(guān)的函數(shù)。

下面的例子將一個(gè)文件名列表中的名稱,添加到文件夾名稱的末尾。

>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in myFiles:
print(os.path.join('C:\\Users\\asweigart', filename))
C:\Users\asweigart\accounts.txt
C:\Users\asweigart\details.csv
C:\Users\asweigart\invite.docx

當(dāng)前工作目錄

每個(gè)運(yùn)行在計(jì)算機(jī)上的程序,都有一個(gè)“當(dāng)前工作目錄”,或cwd。所有沒有從根文件夾開始的文件名或路徑,都假定在當(dāng)前工作目錄下。利用os.getcwd()函數(shù),可以取得當(dāng)前工作路徑的字符串,并可以利用 os.chdir()改變它。

絕對(duì)路徑與相對(duì)路徑

  • “絕對(duì)路徑”,總是從根文件夾開始。
  • “相對(duì)路徑”,它相對(duì)于程序的當(dāng)前工作目錄。

還有點(diǎn)(.)和點(diǎn)點(diǎn)(..)文件夾。它們不是真正的文件夾,而是可以在路徑中使用的特殊名稱*。單個(gè)的句點(diǎn)(“點(diǎn)”)用作文件夾目名稱時(shí),是“這個(gè)目錄”的縮寫。兩個(gè)句點(diǎn)(“點(diǎn)點(diǎn)”)意思是父文件夾。*

在工作目錄 C:\bacon 中的文件夾和文件的相對(duì)路徑:

用 os.makedirs()創(chuàng)建新文件夾

處理絕對(duì)路徑和相對(duì)路徑

os.path 模塊提供了一些函數(shù),返回一個(gè)相對(duì)路徑的絕對(duì)路徑,以及檢查給定的路徑是否為絕對(duì)路徑。

調(diào)用 os.path.abspath(path)將返回參數(shù)的絕對(duì)路徑的字符串。這是將相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑的簡(jiǎn)便方法。

調(diào)用 os.path.isabs(path),如果參數(shù)是一個(gè)絕對(duì)路徑,就返回True,如果參數(shù)是一個(gè)相對(duì)路徑,就返回 False。

調(diào)用 os.path.relpath(path,start)將返回從start路徑到path的相對(duì)路徑的字符串。如果沒有提供 start,就使用當(dāng)前工作目錄作為開始路徑。

調(diào)用 os.path.dirname(path)將返回一個(gè)字符串,它包含path參數(shù)中最后一個(gè)斜杠 之前的所有內(nèi)容。

調(diào)用 os.path.basename(path)將返回一個(gè)字符串,它包含path參數(shù)中最后一個(gè)斜杠之后的所有內(nèi)容。

如果同時(shí)需要一個(gè)路徑的目錄名稱和基本名稱,就可以調(diào)用os.path.split(),獲得這兩個(gè)字符串的元組

>>> calcFilePath = 'C:\\Windows\\System32\\calc.exe'
>>> os.path.split(calcFilePath)
('C:\\Windows\\System32', 'calc.exe')

os.path.split()不會(huì)接受一個(gè)文件路徑并返回每個(gè)文件夾的字符串的列表。如果需要這樣,請(qǐng)使用split()字符串方法,并根據(jù)os.path.sep中的字符串進(jìn)行分割?;貞浺幌拢鶕?jù)程序運(yùn)行的計(jì)算機(jī),os.path.sep 變量設(shè)置為正確的文件夾分割斜杠。

>>> calcFilePath.split(os.path.sep)
['C:', 'Windows', 'System32', 'calc.exe']

查看文件大小和文件夾內(nèi)容

調(diào)用 os.path.getsize(path)將返回 path 參數(shù)中文件的字節(jié)數(shù)。
調(diào)用 os.listdir(path)將返回文件名字符串的列表,包含 path 參數(shù)中的每個(gè)文件

檢查路徑有效性

如果 path 參數(shù)所指的文件或文件夾存在,調(diào)用 os.path.exists(path)將返回 True,否則返回 False。
如果 path 參數(shù)存在,并且是一個(gè)文件,調(diào)用 os.path.isfile(path)將返回 True,否則返回 False。

文件讀寫過程

在 Python 中,讀寫文件有 3 個(gè)步驟:

調(diào)用 open()函數(shù),返回一個(gè) File 對(duì)象。
調(diào)用 File 對(duì)象的 read()或 write()方法。
調(diào)用 File 對(duì)象的 close()方法,關(guān)閉該文件。

用 open()函數(shù)打開文件

要用 open()函數(shù)打開一個(gè)文件,就要向它傳遞一個(gè)字符串路徑,表明希望打開的文件。這既可以是絕對(duì)路徑,也可以是相對(duì)路徑。open()函數(shù)返回一個(gè) File 對(duì)象。

讀取文件內(nèi)容

調(diào)用 open()將返回一個(gè)File對(duì)象。File對(duì)象代表計(jì)算機(jī)中的一個(gè)文件,它只是Python 中另一種類型的值,就像你已熟悉的列表和字典。

調(diào)用readlines()方法,從文件取得一個(gè)字符串的列表。列表中的每個(gè)字符串就是文本中的每一行

調(diào)用read()方法可以將文件的內(nèi)容讀取為一個(gè)字符串值。如果將文件的內(nèi)容看成是單個(gè)大字符串,用這個(gè)方法就很好。

與單個(gè)大字符串相比,字符串的列表通更易處理

寫入文件

如果打開文件時(shí)用讀模式,就不能寫入文件。你需要以“寫入純文本模式”或“添加純文本模式”打開該文件,或簡(jiǎn)稱為“寫模式”和“添加模式”。

寫模式將覆寫原有的文件,從頭開始,就像你用一個(gè)新值覆寫一個(gè)變量的值。將’w’作為第二個(gè)參數(shù)傳遞給 open(),以寫模式打開該文件。

添加模式將在已有文件的末尾添加文本。你可以認(rèn)為這類似向一個(gè)變量中的列表添加內(nèi)容,而不是完全覆寫該變量。將’a’作為第二個(gè)參數(shù)傳遞給open(),以添加模式打開該文件。

如果傳遞給 open()的文件名不存在,寫模式和添加模式都會(huì)創(chuàng)建一個(gè)新的空文件。

在讀取或?qū)懭胛募?,調(diào)用 close()方法,然后才能再次打開該文件。

>>> baconFile = open('bacon.txt', 'w')
>>> baconFile.write('Hello world!\n')
13
>>> baconFile.close()
>>> baconFile = open('bacon.txt', 'a')
>>> baconFile.write('Bacon is not a vegetable.')
25
>>> baconFile.close()
>>> baconFile = open('bacon.txt')
>>> content = baconFile.read()
>>> baconFile.close()
>>> print(content)
Hello world!
Bacon is not a vegetable.

write()方法不會(huì)像 print()函數(shù)那樣,在字符串的末尾自動(dòng)添加換行字符。必須自己添加該字符。


新聞標(biāo)題:Python文件讀寫操作方法
本文鏈接:http://www.dlmjj.cn/article/cdccdio.html