在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ Python文件讀寫
Python異常處理
Python循環(huán)
Python基本運(yùn)算符
Python網(wǎng)絡(luò)編程(Sockets)
Python可以開發(fā)哪些程序?
Python XML解析和處理
Python數(shù)字
Python函數(shù)
Python變量類型
Python os模塊方法
Python迭代器
Python安裝和環(huán)境配置
Python構(gòu)造函數(shù)
Python文件對(duì)象方法
Python日期和時(shí)間
Python的歷史
Python生成器
Python+MySQL數(shù)據(jù)庫(kù)操作(PyMySQL)
Python命令行參數(shù)
Python元組
Python發(fā)送郵件
Python列表
Python文件讀寫
Python教程
Python面向?qū)ο螅惡蛯?duì)象)
Python多線程編程
Python多重繼承
Python決策
Python是什么?
Python快速入門
Python繼承
Python字典
Python字符串
Python操作符重載
Python正則表達(dá)式
Python閉包
Python修飾器
Python功能特點(diǎn)
Python模塊

Python文件讀寫

在本章中將介紹Python 3中可用的所有基本文件讀取I/O功能。有關(guān)更多功能,請(qǐng)參考標(biāo)準(zhǔn)Python文檔。

打印到屏幕

產(chǎn)生輸出的最簡(jiǎn)單方法是使用print語(yǔ)句,可以傳遞零個(gè)或多個(gè)由逗號(hào)分隔的表達(dá)式。此函數(shù)將傳遞的表達(dá)式轉(zhuǎn)換為字符串,并將結(jié)果寫入標(biāo)準(zhǔn)輸出,如下所示:

#!/usr/bin/python3

print ("Python是世界上最牛逼的語(yǔ)言,", "難道不是嗎?")

執(zhí)行上面代碼后,將在標(biāo)準(zhǔn)屏幕上產(chǎn)生以下結(jié)果 -

Python是世界上最牛逼的語(yǔ)言, 難道不是嗎?

從鍵盤讀取輸入

Python 2有兩個(gè)內(nèi)置的函數(shù)用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),默認(rèn)情況下來(lái)自鍵盤。這兩個(gè)函數(shù)分別是:input()raw_input()。

Python 3中,不建議使用raw_input()函數(shù)。 input()函數(shù)可以從鍵盤讀取數(shù)并作為字符串類型,而不管它是否用引號(hào)括起來(lái)(“或”“)。

>>> x = input("input something:")
input something:yes,input some string
>>> x
'yes,input some string'
>>> x = input("input something:")
input something:1239900
>>> x
'1239900'
>>>

打開和關(guān)閉文件

在前面我們學(xué)習(xí)讀取和寫入標(biāo)準(zhǔn)的輸入和輸出。 現(xiàn)在,來(lái)看看如何使用實(shí)際的數(shù)據(jù)文件。Python提供了默認(rèn)操作文件所必需的基本功能和方法。可以使用文件對(duì)象執(zhí)行大部分文件操作。

打開文件

在讀取或?qū)懭胛募?,必須使用Python的內(nèi)置open()函數(shù)打開文件。此函數(shù)創(chuàng)建一個(gè)文件對(duì)象,該對(duì)象將用于調(diào)用與其相關(guān)聯(lián)的其他支持方法。

語(yǔ)法

file object = open(file_name [, access_mode][, buffering])

這里是參數(shù)詳細(xì)信息 -

  • file_name - file_name參數(shù)是一個(gè)字符串值,指定要訪問(wèn)的文件的名稱。
  • access_mode - access_mode確定文件打開的模式,即讀取,寫入,追加等。可能的值的完整列表如下表所示。 這是一個(gè)可選參數(shù),默認(rèn)文件訪問(wèn)模式為(r - 也就是只讀)。
  • buffering - 如果buffering值設(shè)置為0,則不會(huì)發(fā)生緩沖。 如果緩沖值buffering1,則在訪問(wèn)文件時(shí)執(zhí)行行緩沖。如果將緩沖值buffering指定為大于1的整數(shù),則使用指定的緩沖區(qū)大小執(zhí)行緩沖操作。如果為負(fù),則緩沖區(qū)大小為系統(tǒng)默認(rèn)值(默認(rèn)行為)。

以下是打開文件使用的模式的列表 -

編號(hào) 模式 描述
1 r 打開的文件為只讀模式。文件指針位于文件的開頭,這是默認(rèn)模式。
2 rb 打開僅用二進(jìn)制格式讀取的文件。文件指針位于文件的開頭,這是默認(rèn)模式。
3 r+ 打開讀寫文件。文件指針?lè)旁谖募拈_頭。
4 rb+ 以二進(jìn)制格式打開一個(gè)用于讀寫文件。文件指針?lè)旁谖募拈_頭。
5 w 打開僅供寫入的文件。 如果文件存在,則覆蓋該文件。 如果文件不存在,則創(chuàng)建一個(gè)新文件進(jìn)行寫入。
6 wb 打開僅用二進(jìn)制格式寫入的文件。如果文件存在,則覆蓋該文件。 如果文件不存在,則創(chuàng)建一個(gè)新文件進(jìn)行寫入。
7 w+ 打開寫入和取讀的文件。如果文件存在,則覆蓋現(xiàn)有文件。 如果文件不存在,創(chuàng)建一個(gè)新文件進(jìn)行閱讀和寫入。
8 wb+ 打開一個(gè)二進(jìn)制格式的寫入和讀取文件。 如果文件存在,則覆蓋現(xiàn)有文件。 如果文件不存在,創(chuàng)建一個(gè)新文件進(jìn)行閱讀和寫入。
9 a 打開一個(gè)文件進(jìn)行追加。 如果文件存在,則文件指針位于文件末尾。也就是說(shuō),文件處于追加模式。如果文件不存在,它將創(chuàng)建一個(gè)新文件進(jìn)行寫入。
10 ab 打開一個(gè)二進(jìn)制格式的文件。如果文件存在,則文件指針位于文件末尾。 也就是說(shuō),文件處于追加模式。如果文件不存在,它將創(chuàng)建一個(gè)新文件進(jìn)行寫入。
11 a+ 打開一個(gè)文件,用于追加和閱讀。 如果文件存在,則文件指針位于文件末尾。 文件以附加模式打開。 如果文件不存在,它將創(chuàng)建一個(gè)新文件進(jìn)行閱讀和寫入。
12 ab+ 打開一個(gè)二進(jìn)制格式的附加和讀取文件。 如果文件存在,則文件指針位于文件末尾。文件以附加模式打開。如果文件不存在,它將創(chuàng)建一個(gè)新文件進(jìn)行讀取和寫入。

文件對(duì)象屬性

打開一個(gè)文件并且有一個(gè)文件對(duì)象后,可以獲得與該文件相關(guān)的各種信息。

以下是與文件對(duì)象相關(guān)的所有屬性的列表 -

編號(hào) 屬性 描述
1 file.closed 如果文件關(guān)閉則返回true,否則返回false。
2 file.mode 返回打開文件的訪問(wèn)模式。
3 file.name 返回文件的名稱。

注意 - Python 3.x中不支持softspace屬性

示例

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
print ("Closed or not : ", fo.closed)
print ("Opening mode : ", fo.mode)
fo.close()

執(zhí)行上面代碼,這產(chǎn)生以下結(jié)果 -

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb

close()方法

文件對(duì)象的close()方法刷新任何未寫入的信息并關(guān)閉文件對(duì)象,之后不能再進(jìn)行寫入操作。
當(dāng)文件的引用對(duì)象重新分配給另一個(gè)文件時(shí),Python也會(huì)自動(dòng)關(guān)閉一個(gè)文件。但使用close()方法關(guān)閉文件是個(gè)好習(xí)慣。

語(yǔ)法

fileObject.close();

示例

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)

# Close opened file
fo.close()

執(zhí)行上面代碼,這產(chǎn)生以下結(jié)果 -

Name of the file:  foo.txt

讀取和寫入文件

文件對(duì)象提供了一組訪問(wèn)方法,使代碼編寫更方便。下面將演示如何使用read()write()方法來(lái)讀取和寫入文件。

write()方法

write()方法將任何字符串寫入打開的文件。 重要的是要注意,Python字符串可以是二進(jìn)制數(shù)據(jù),而不僅僅是文本。

write()方法不會(huì)在字符串的末尾添加換行符(‘\n‘)

語(yǔ)法

fileObject.write(string);

這里,傳遞參數(shù) - string 是要寫入打開文件的內(nèi)容。

示例

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opend file
fo.close()

上述示例將創(chuàng)建一個(gè)foo.txt文件,并將給定的內(nèi)容寫入到該文件中,最后將關(guān)閉文件。 在執(zhí)行上面語(yǔ)句后,如果打開文件(foo.txt),它將應(yīng)該以下內(nèi)容 -

Python is a great language.
Yeah its great!!

read()方法

read()方法用于從打開的文件讀取一個(gè)字符串。 重要的是要注意Python字符串除文本數(shù)據(jù)外可以是二進(jìn)制數(shù)據(jù)。。

語(yǔ)法

fileObject.read([count]);

這里,傳遞參數(shù) - count是從打開的文件讀取的字節(jié)數(shù)。 該方法從文件的開始位置開始讀取,如果count不指定值或丟失,則盡可能地嘗試讀取文件,直到文件結(jié)束。

示例

下面來(lái)一個(gè)文件foo.txt,這是上面示例中創(chuàng)建的。

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)

# Close opened file
fo.close()

執(zhí)行上面代碼,這產(chǎn)生以下結(jié)果 -

Read String is :  Python is

文件位置

tell()方法用于獲取文件中的當(dāng)前位置; 換句話說(shuō),下一次讀取或?qū)懭雽l(fā)生在從文件開始處之后的多個(gè)字節(jié)數(shù)的位置。

seek(offset [,from])方法更改當(dāng)前文件位置。 offset參數(shù)表示要移動(dòng)的字節(jié)數(shù)。 from參數(shù)指定要移動(dòng)字節(jié)的引用位置。

如果from設(shè)置為0,則將文件的開頭作為參考位置。 如果設(shè)置為1,則將當(dāng)前位置用作參考位置。 如果設(shè)置為2,則文件的末尾將被作為參考位置。

示例

下面來(lái)一個(gè)文件foo.txt,這是上面示例中創(chuàng)建的。

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)

# Check current position
position = fo.tell()
print ("Current file position : ", position)

# Reposition pointer at the beginning once again
position = fo.seek(0, 0)
str = fo.read(10)
print ("Again read String is : ", str)

# Close opened file
fo.close()

執(zhí)行上面代碼,這產(chǎn)生以下結(jié)果 -

Read String is :  Python is
Current file position :  10
Again read String is :  Python is

重命名和刪除文件

Python os模塊提供用于執(zhí)行文件處理操作(如重命名和刪除文件)的方法。要使用此模塊,需要先將它導(dǎo)入,然后可以調(diào)用任何相關(guān)的函數(shù)。

rename()方法

rename()方法有兩個(gè)參數(shù),即當(dāng)前的文件名和新的文件名。

語(yǔ)法

os.rename(current_file_name, new_file_name)

示例

以下是一個(gè)將現(xiàn)有文件test1.txt重命名為test2.txt的示例 -

#!/usr/bin/python3
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

remove()方法

使用remove()方法并通過(guò)提供要?jiǎng)h除的文件的名稱作為參數(shù)來(lái)刪除文件。

語(yǔ)法

os.remove(file_name)

示例

以下是刪除現(xiàn)有文件test2.txt的示例 -

#!/usr/bin/python3
import os

# Delete file test2.txt
os.remove("text2.txt")

Python中的目錄

所有文件都包含在各種目錄中,Python處理目錄問(wèn)題也很容易。 os模塊有幾種方法可以用來(lái)創(chuàng)建,刪除和更改目錄。

mkdir()方法

使用os模塊的mkdir()方法在當(dāng)前目錄中創(chuàng)建目錄。需要為此方法提供一個(gè)參數(shù),指定要?jiǎng)?chuàng)建的目錄的名稱。

語(yǔ)法

os.mkdir("newdir")

示例

以下是在當(dāng)前目錄中創(chuàng)建一個(gè)目錄:test 的示例 -

#!/usr/bin/python3
import os

# Create a directory "test"
os.mkdir("test")

使用chdir()方法來(lái)更改當(dāng)前目錄。 chdir()方法接受一個(gè)參數(shù),它是要選擇作為當(dāng)前目錄的目錄的名稱。

語(yǔ)法

os.chdir("newdir")

示例

以下是進(jìn)入“/home/newdir”目錄的示例 -

#!/usr/bin/python3
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

getcwd()方法

getcwd()方法用于顯示當(dāng)前工作目錄。

os.getcwd()

示例

以下是給出當(dāng)前目錄的一個(gè)例子 -

#!/usr/bin/python3
import os

# This would give location of the current directory
os.getcwd()

rmdir()方法

rmdir()方法刪除該方法中作為參數(shù)傳遞的目錄。刪除目錄之前,應(yīng)刪除其中的所有內(nèi)容。

os.rmdir('dirname')

示例

以下是刪除“/tmp/test”目錄的示例。需要給出目錄的完全限定名稱,否則將在當(dāng)前目錄中搜索該目錄。

#!/usr/bin/python3
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

文件和目錄相關(guān)方法

有三個(gè)重要的來(lái)源,它們提供了廣泛的實(shí)用方法來(lái)處理和操作Windows和Unix操作系統(tǒng)上的文件和目錄。它們?nèi)缦?-


上一篇:Python字符串下一篇:Python快速入門