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

鍍金池/ 教程/ Python/ Python3文件操作
Python3文件操作
Python3日期和時間
Python3基礎(chǔ)語法
Python3字典
Python3元組
Python3文件方法
Python3字符串
Python3引入什么新的東西?
Python3異常處理
Python3模塊
Python3數(shù)字
Python3變量類型
Python3函數(shù)
Python3循環(huán)
Python3 os文件目錄的方法
Python3 while循環(huán)語句
Python3斷言
Python3基本運算符
Python3環(huán)境安裝設(shè)置
Python3標準異常
Python3嵌套循環(huán)
Python3教程
Python3決策
Python3 for循環(huán)語句
Python3列表

Python3文件操作

本章涵蓋了 Python3 所有提供的基本I/ O功能。對于更多的功能,請參考標準Python文檔。

打印到屏幕

產(chǎn)生輸出的最簡單方法是使用print語句,可以通過用逗號分隔零個或多個表達式。這個函數(shù)傳遞表達式轉(zhuǎn)換為一個字符串,如下結(jié)果寫到標準輸出 -

#!/usr/bin/python3

print ("Python is really a great language,", "isn't it?")
這將產(chǎn)生以下結(jié)果標準屏幕上 -
Python is really a great language, isn't it?

讀取鍵盤輸入

Python2中有兩個內(nèi)置的函數(shù)可從標準輸入讀取數(shù)據(jù),它默認來自鍵盤。這些函數(shù)分別是:input() 和 raw_input()。

但在Python3中,raw_input()函數(shù)已被棄用。此外, input() 函數(shù)是從鍵盤作為字符串讀取數(shù)據(jù),不論是否使用引號(''或“”)與否。

input 函數(shù)

input([prompt]) 函數(shù)等同 raw_input,不同之處在于它假定輸入是一個有效的Python表達式并計算結(jié)果返回給你。

#!/usr/bin/python3

>>> x=input("something:")
something:10
>>> x
'10'
>>> x=input("something:")
something:'10' #entered data treated as string with or without ''
>>> x
"'10'"

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

到現(xiàn)在為止,已經(jīng)學習了讀取和寫入標準輸入和輸出。現(xiàn)在,我們學習如何使用文件實際數(shù)據(jù)。

Python提供了基本的功能和必要的默認操作文件的方法。您可以使用一個 file 對象來做大部分的文件操作。

open 函數(shù)

在讀取或?qū)懭胍粋€文件之前,你必須使用 Python 內(nèi)置open()函數(shù)來打開它。 該函數(shù)創(chuàng)建一個文件對象,這將被用來調(diào)用與它相關(guān)的其他支持方式。

語法

file object = open(file_name [, access_mode][, buffering])
下面是參數(shù)的詳細信息:
  • file_name: 文件名(file_name )參數(shù)是包含您要訪問的文件名的字符串值。

  • access_mode: access_mode指定該文件已被打開,即讀,寫,追加等方式。可能值的完整列表,在表中如下。

    這是可選的參數(shù),默認文件訪問模式是讀(r)。
  • buffering: 如果該緩沖值被設(shè)置為0,則表示不使用緩沖。如果該緩沖值是1,則在訪問一個文件進行時行緩沖。

    如果指定緩沖值大于1的整數(shù),緩沖使用所指示的緩沖器大小進行。如果是負數(shù),緩沖區(qū)大小是系統(tǒng)默認的(默認行為)。

這里是打開一個文件不同模式的列表 -
模式 描述
r 打開一個文件為只讀。文件指針被放置在文件的開頭。這是默認模式。
rb 打開一個文件只能以二進制格式讀取。文件指針被放置在文件的開頭。這是默認模式。
r+ 打開用于讀和寫文件。文件指針置于該文件的開頭。
rb+ 打開用于讀取和寫入二進制格式的文件。文件指針置于該文件的開頭。
w 打開一個文件只寫。如果文件存在覆蓋該文件。如果該文件不存在,則創(chuàng)建寫入新文件。
wb 打開一個文件只能以二進制格式寫入。如果文件存在覆蓋該文件。如果該文件不存在,則創(chuàng)建寫入新文件。
w+ 打開文件為寫入和讀取模式。如果文件存在覆蓋現(xiàn)有文件。如果該文件不存在,創(chuàng)建用于讀寫操作的新文件。
wb+ 打開用于以二進制格式寫入和讀出文件。如果文件存在覆蓋現(xiàn)有文件。如果該文件不存在,創(chuàng)建用于讀寫操作的新文件。
a 打開用于追加的文件。文件指針是在文件是否存在該文件的末尾。也就是說,該文件是在追加模式。如果該文件不存在,它會創(chuàng)建一個用于寫入的新文件。
ab 打開文件用于二進制格式追加文件指針是在文件是否存在該文件的末尾。也就是說,文件是在追加模式。 如果該文件不存在,它會創(chuàng)建一個用于寫入的新文件。
a+ 打開文件為追加和讀取方式。文件指針是在文件是否存在該文件的末尾。該文件以追加模式打開。如果該文件不存在,它將創(chuàng)建用于讀寫操作的新文件。
ab+ 打開一個文件以附加和二進制格式讀取模式。如果該文件存在文件指針在該文件的末尾。該文件以追加模式打開。如果該文件不存在,它將創(chuàng)建讀寫操作的新文件。

file 對象屬性

一旦文件被打開,則就會有一個文件對象,你可以得到有關(guān)該文件的各種信息。

這里是一個文件對象相關(guān)的所有屬性的列表:
屬性 描述
file.closed
如果文件被關(guān)閉返回true,否則為false
file.mode
返回文件打開訪問模式
file.name
返回文件名
注:軟空間屬性未在Python3.x中支持

示例

#!/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()
這將產(chǎn)生以下結(jié)果 -
Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb

close()方法

文件對象的close()方法用于刷新任何未寫入的信息,并關(guān)閉文件對象, 之后就沒有更多的寫入東西了。

Python自動關(guān)閉文件當參考文件對象分配給另一個文件。使用 close()方法關(guān)閉文件一個很好的做法。

語法

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()
這將產(chǎn)生以下結(jié)果 -
Name of the file:  foo.txt

讀寫文件

文件對象提供了一組訪問方法。 我們將看到如何使用 read()和write()方法來讀取和寫入文件。

write() 方法

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

write()方法不添加換行符('\n')到字符串的結(jié)尾-

語法

fileObject.write(string);
這里,傳遞的參數(shù)是要寫入到打開的文件的內(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)建 foo.txt 文件,并給出的內(nèi)容寫入文件,最后將關(guān)閉該文件如果打開這個文件,會看到它有以下內(nèi)容。

Python is a great language.
Yeah its great!!

read() 方法

read()方法從一個打開的文件讀取字符串。要注意,Python字符串可以是二進制數(shù)據(jù)。而并非只是文本數(shù)據(jù)。

語法

fileObject.read([count]); 

這里,傳遞的參數(shù)是從打開的文件讀取的字節(jié)數(shù)。該方法開始從文件的開始讀取,并且如果 count 丟失,那么它會嘗試盡可能讀,也許直到文件的末尾。

示例

讓我們使用一個文件 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()
這將產(chǎn)生以下結(jié)果 -
Read String is :  Python is

文件位置

tell() 方法告訴你該文件中的當前位置;換句話說,下一個讀或?qū)憣l(fā)生在從該文件的開頭之后多個字節(jié)。

seek(offset[, from]) 方法改變當前文件的位置。 offset 參數(shù)指示要移動字節(jié)數(shù)。from 參數(shù)指定字節(jié)從哪移動的參考位置。

如果 from 被設(shè)置為0,這意味著使用該文件的開頭作為基準位置,以及如果設(shè)置為1,則使用當前位置作為基準位置,如果它被設(shè)置為2,則該文件的結(jié)束將被作為基準位置。

示例

讓我們使用一個文件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()
這將產(chǎn)生以下結(jié)果 -
Read String is :  Python is
Current file position :  10
Again read String is :  Python is

重命名和刪除文件

Python的os模塊提供了執(zhí)行文件處理操作,如重命名和刪除文件的方法。
要使用這個模塊,需要先導入它,然后就可以調(diào)用任何相關(guān)的功能了。

rename() 方法

rename()方法有兩個參數(shù),當前文件名和新的文件名。

語法

os.rename(current_file_name, new_file_name)

示例

以下為例子用來重命名現(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()方法通過提供參數(shù)文件名稱(file_name)來刪除文件。

語法

os.remove(file_name)

示例

下面是刪除現(xiàn)有文件 test2.txt 的例子 -
#!/usr/bin/python3
import os

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

Python目錄

所有的文件都包含不同的目錄中,Python處理這些目錄操作也沒有什么問題。os模塊中有用于創(chuàng)建,刪除和更改目錄的幾種方法。

mkdir() 方法

可以使用os模塊中的 mkdir()方法在當前目錄下創(chuàng)建目錄。需要提供一個參數(shù)到這個方法指定要創(chuàng)建的目錄名。

語法

os.mkdir("newdir")

示例

下面是在當前目錄創(chuàng)建 test 目錄的例子 -
#!/usr/bin/python3
import os

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

chdir() 方法

可以使用 chdir() 方法來改變當前目錄。chdir() 方法接受一個參數(shù),就是你想在當前目錄創(chuàng)建的目錄的目錄名稱。

語法

os.chdir("newdir")

示例

以下是進入 "/home/newdir" 目錄的例子-
#!/usr/bin/python3
import os

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

getcwd()方法

getcwd()方法顯示當前的工作目錄。

語法

os.getcwd()

示例

以下是獲得當前目錄的例子 -
#!/usr/bin/python3
import os

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

rmdir() 方法

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

方法:

os.rmdir('dirname')

示例

以下是刪除 "/tmp/test" 目錄的例子。它需要給定目錄的完全合格的名稱,否則會從當前目錄搜索目錄。

#!/usr/bin/python3
import os

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

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

有三個重要來源,它提供了多種實用的方法來處理 和操作在Windows和Unix操作系統(tǒng)的文件和目錄。它們?nèi)缦?nbsp;-