Python3教學
Python3引入什麼新的東西?
Python3環境安裝設置
Python3基礎語法
Python3變量類型
Python算術運算符實例
Python3比較運算符實例
Python3賦值運算符實例
Python3位運算符實例
Python3邏輯運算符實例
Python3成員運算符實例
Python3標識運算符實例
Python3運算符優先級示例
Python3基本運算符
Python3 if語句
Python3 if...elseif...else語句
Python3嵌套if語句
Python3決策
Python3 while循環語句
Python3 for循環語句
Python3嵌套循環
Python3 break語句
Python3 continue語句
Python3 pass語句
Python3循環
Python3 abs()函數
Python3 ceil()函數
Python3 exp()函數
Python3 fabs()函數
Python3 floor()函數
Python3 log()函數
Python3 log10()函數
Python3 max()函數
Python3 min()函數
Python3 modf()函數
Python3 pow()函數
Python3 round()函數
Python3 sqrt()函數
Python3 choice()函數
Python3 randrange()函數
Python3 random()函數
Python3 seed()函數
Python3 shuffle()函數
Python3 uniform()函數
Python3 acos()函數
Python3 asin()函數
Python3 atan()函數
Python3 atan2()函數
Python3 cos()函數
Python3 hypot()函數
Python3 sin()函數
Python3 tan()函數
Python3 degrees()函數
Python3 radians()函數
Python3數字
Python3 string.capitalize()方法
Python3 string.center()方法
Python3 string.count()方法
Python3 string.decode()方法
Python3 string.endswith()方法
Python3 string.expandtabs()方法
Python3 string.encode()方法
Python3 string.find()方法
Python3 string.index()方法
Python3 string.isalnum()方法
Python3 string.isalpha()方法
Python3 string.isdigit()方法
Python3 string.tolower()方法
Python3 string.isnumeric()方法
Python3 string.isspace()方法
Python3 string.istitle()方法
Python3 string.isupper()方法
Python3 string.join()方法
Python3 string.len()方法
Python3 string.ljust()方法
Python3 string.lower()方法
Python3 string.lstrip()方法
Python3 string.maketrans()方法
Python3 string.max()方法
Python3 string.min()方法
Python3 string.replace()方法
Python3 string.rfind()方法
Python3 string.rindex()方法
Python3 string.rjust()方法
Python3 string.rstrip()方法
Python3 string.split()方法
Python3 string.splitlines()方法
Python3 string.startswith()方法
Python3 string.strip()方法
Python3 string.swapcase()方法
Python3 string.title()方法
Python3 string.translate()方法
Python3 string.upper()方法
Python3 string.zfill()方法
Python3 string.isdecimal()方法
Python3字符串
Python3 list.cmp()方法
Python3 list.len()方法
Python3 list.max()方法
Python3 list.min()方法
Python3 list.list()方法
Python3 list.append()方法
Python3 list.count()方法
Python3 list.extend()方法
Python3 list.index()方法
Python3 list.insert()方法
Python3 list.pop()方法
Python3 list.remove()方法
Python3 list.reverse()方法
Python3 list.sort()方法
Python3列表
Python3 tuple.cmp()方法
Python3 tuple.len()方法
Python3 tuple.max()方法
Python3 tuple.min()方法
Python3 tuple.tuple()方法
Python3元組
Python3 dictionary.cmp()方法
Python3 dictionary.len()方法
Python3 dictionary.str()方法
Python3 dictionary.type()方法
Python3 dictionary.clear()方法
Python3 dictionary.copy()方法
Python3 dictionary.fromkeys()方法
Python3 dictionary.get()方法
Python3 dictionary.has_key()方法
Python3 dictionary.items()方法
Python3 dictionary.keys()方法
Python3 dictionary.setdefault()方法
Python3 dictionary.update()方法
Python3 dictionary.values()方法
Python3字典
Python3 time.altzone()方法
Python3 time.asctime()方法
Python3 time.clock()方法
Python3 time.ctime()方法
Python3 time.gmtime()方法
Python3 time.localtime()方法
Python3 time.mktime()方法
Python3 time.sleep()方法
Python3 time.strftime()方法
Python3 time.time()方法
Python3 time.tzset()方法
Python3日期和時間
Python3函數
Python3模塊
Python3 file.close()方法
Python3 file.tell()方法
Python3 file.truncate()方法
Python3 file.write()方法
Python3 file.writelines()方法
Python3 file.flush()方法
Python3 file.fileno()方法
Python3 file.isatty()方法
Python3 file.next()方法
Python3 file.read()方法
Python3 file.readline()方法
Python3 file.readlines()方法
Python3 file.seek()方法
Python3文件方法
Python3 os.access()方法
Python3 os.chdir()方法
Python3 os.chflags()方法
Python3 os.chmod()方法
Python3 os.chown()方法
Python3 os.chroot()方法
Python3 os.close()方法
Python3 os.closerange()方法
Python3 os.dup()方法
Python3 os.dup2()方法
Python3 os.fchdir()方法
Python3 os.fchmod()方法
Python3 os.fchown()方法
Python3 os.fdatasync()方法
Python3 os.fopen()方法
Python3 os.fpathconf()方法
Python3 os.fstat()方法
Python3 os.fstatvfs()方法
Python3 os.fsync()方法
Python3 os.ftruncate()方法
Python3 os.getcwd()方法
Python3 os.getcwdu()方法
Python3 os.isatty()方法
Python3 os.lchflags()方法
Python3 os.lchmod()方法
Python3 os.lchown()方法
Python3 os.link()方法
Python3 os.listdir()方法
Python3 os.lseek()方法
Python3 os.lstat()方法
Python3 os.major()方法
Python3 os.makedev()方法
Python3 os.makedirs()方法
Python3 os.minor()方法
Python3 os.mkdir()方法
Python3 os.mkfifo()方法
Python3 os.mknod()方法
Python3 os.open()方法
Python3 os.openpty()方法
Python3 os.pathconf()方法
Python3 os.pipe()方法
Python3 os.popen()方法
Python3 os.read()方法
Python3 os.readlink()方法
Python3 os.remove()方法
Python3 os.removedirs()方法
Python3 os.rename()方法
Python3 os.renames()方法
Python3 os.rmdir()方法
Python3 os.stat()方法
Python3 os.stat_float_times()方法
Python3 os.statvfs()方法
Python3 os.symlink()方法
Python3 os.tcgetpgrp()方法
Python3 os.tcsetpgrp()方法
Python3 os.tempnam()方法
Python3 os.tmpfile()方法
Python3 os.tmpnam()方法
Python3 os.ttyname()方法
Python3 os.unlink()方法
Python3 os.utime()方法
Python3 os.walk()方法
Python3 os.write()方法
Python3 os文件目錄的方法
Python3文件操作
Python3標準異常
Python3斷言
Python3異常處理

Python3文件操作

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

打印到屏幕


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

#!/usr/bin/python3

print ("Python is really a great language,", "isn't it?")

這將產生以下結果標準屏幕上 -

Python is really a great language, isn't it?

讀取鍵盤輸入


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

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

input 函數

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

#!/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'"

打開和關閉文件


到現在爲止,已經學習了讀取和寫入標準輸入和輸出。現在,我們學習如何使用文件實際數據。

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

open 函數

在讀取或寫入一個文件之前,你必須使用 Python 內置open()函數來打開它。 該函數創建一個文件對象,這將被用來調用與它相關的其他支持方式。

語法

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

下面是參數的詳細信息:

  • file_name: 文件名(file_name )參數是包含您要訪問的文件名的字符串值。

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

    這是可選的參數,默認文件訪問模式是讀(r)。

  • buffering: 如果該緩衝值被設置爲0,則表示不使用緩衝。如果該緩衝值是1,則在訪問一個文件進行時行緩衝。

    如果指定緩衝值大於1的整數,緩衝使用所指示的緩衝器大小進行。如果是負數,緩衝區大小是系統默認的(默認行爲)。

這裏是打開一個文件不同模式的列表 -

模式

描述

r

打開一個文件爲只讀。文件指針被放置在文件的開頭。這是默認模式。

rb

打開一個文件只能以二進制格式讀取。文件指針被放置在文件的開頭。這是默認模式。

r+

打開用於讀和寫文件。文件指針置於該文件的開頭。

rb+

打開用於讀取和寫入二進制格式的文件。文件指針置於該文件的開頭。

w

打開一個文件只寫。如果文件存在覆蓋該文件。如果該文件不存在,則創建寫入新文件。

wb

打開一個文件只能以二進制格式寫入。如果文件存在覆蓋該文件。如果該文件不存在,則創建寫入新文件。

w+

打開文件爲寫入和讀取模式。如果文件存在覆蓋現有文件。如果該文件不存在,創建用於讀寫操作的新文件。

wb+

打開用於以二進制格式寫入和讀出文件。如果文件存在覆蓋現有文件。如果該文件不存在,創建用於讀寫操作的新文件。

a

打開用於追加的文件。文件指針是在文件是否存在該文件的末尾。也就是說,該文件是在追加模式。如果該文件不存在,它會創建一個用於寫入的新文件。

ab

打開文件用於二進制格式追加。文件指針是在文件是否存在該文件的末尾。也就是說,文件是在追加模式。 如果該文件不存在,它會創建一個用於寫入的新文件。

a+

打開文件爲追加和讀取方式。文件指針是在文件是否存在該文件的末尾。該文件以追加模式打開。如果該文件不存在,它將創建用於讀寫操作的新文件。

ab+

打開一個文件以附加和二進制格式讀取模式。如果該文件存在文件指針在該文件的末尾。該文件以追加模式打開。如果該文件不存在,它將創建讀寫操作的新文件。

file 對象屬性

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

這裏是一個文件對象相關的所有屬性的列表:

屬性

描述

file.closed

如果文件被關閉 返回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()

這將產生以下結果 -

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

*close()*方法

文件對象的close()方法用於刷新任何未寫入的信息,並關閉文件對象, 之後就沒有更多的寫入東西了。

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

語法

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()

這將產生以下結果 -

Name of the file: foo.txt

讀寫文件


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

write() 方法

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

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

語法

fileObject.write(string);

這裏,傳遞的參數是要寫入到打開的文件的內容。

示例

#!/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() 

上面的方法將創建 foo.txt 文件,並給出的內容寫入文件,最後將關閉該文件。如果打開這個文件,會看到它有以下內容。

Python is a great language.
Yeah its great!!

read() 方法

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

語法

fileObject.read([count]); 

這裏,傳遞的參數是從打開的文件讀取的字節數。該方法開始從文件的開始讀取,並且如果 count 丟失,那麼它會嘗試儘可能讀,也許直到文件的末尾。

示例

讓我們使用一個文件 foo.txt,這是我們在上面所創建的。

#!/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()

這將產生以下結果 -

Read String is : Python is

文件位置


tell() 方法告訴你該文件中的當前位置;換句話說,下一個讀或寫將發生在從該文件的開頭之後多個字節。

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

如果 from 被設置爲0,這意味着使用該文件的開頭作爲基準位置,以及如果設置爲1,則使用當前位置作爲基準位置,如果它被設置爲2,則該文件的結束將被作爲基準位置。

示例

讓我們使用一個文件foo.txt,這是我們在上面創建的。

#!/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()

這將產生以下結果 -

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

重命名和刪除文件


Python的os模塊提供了執行文件處理操作,如重命名和刪除文件的方法。

要使用這個模塊,需要先導入它,然後就可以調用任何相關的功能了。

rename() 方法

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

語法

os.rename(current_file_name, new_file_name)

示例

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

語法

os.remove(file_name)

示例

下面是刪除現有文件 test2.txt 的例子 -

#!/usr/bin/python3
import os

Delete file test2.txt

os.remove("text2.txt")

Python目錄


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

mkdir() 方法

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

語法

os.mkdir("newdir")

示例

下面是在當前目錄創建  test 目錄 的例子 -

#!/usr/bin/python3
import os

Create a directory "test"

os.mkdir("test")

chdir() 方法

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

語法

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()方法刪除目錄,這是作爲方法的參數傳遞。

刪除目錄前,它的所有內容應該先刪除。

方法:

os.rmdir('dirname')

示例

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

#!/usr/bin/python3
import os

This would remove "/tmp/test" directory.

os.rmdir( "/tmp/test" )

相關文件和目錄的方法


有三個重要來源,它提供了多種實用的方法來處理 和操作在Windows和Unix操作系統的文件和目錄。它們如下 -

  • 文件對象方法: 文件對象提供的功能來操作文件。

  • OS對象方法: 提供的方法來處理的文件以及目錄。