1. Python 檔案I/O
本章只講述所有基本的I/O函數,更多函數請參考Python標準文件.
2.印到螢幕
最簡單的輸出方法是用print語句,你可以給它傳遞零個或多個用逗號隔開的表達式。此函數把你傳遞的表達式轉換成一個字串表達式,並將結果寫到標準輸出如下:
範例1:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx print "python 是一门面向对象语言"
執行範例1結果如下:
python 是一门面向对象语言
3.讀取鍵盤輸入
Python提供了兩個內建函數從標準輸入讀入一行文本,預設的標準輸入是鍵盤。如下:
raw_input
input
raw_input函數
# raw_input([prompt]) 函數從標準輸入讀取一行,並傳回一個字串(去掉結尾的換行符號):
範例2:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx strs = raw_input("请输入你想输入的字符串:") print "您输入的字符串是:",strs
範例2 運行結果:
请输入你想输入的字符串:python 您输入的字符串是: python
input函數
input([prompt]) 函數和raw_input([prompt]) 函數基本上類似,但是input 可以接收一個Python表達式作為輸入,並將運算結果傳回。
範例3:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx inputStr = input("可以输入表达式:") print "运行输入的结果:", inputStr
範例3 執行結果:
可以输入表达式:[x*4 for x in (2,3,4)] 运行输入的结果: [8, 12, 16]
4.開啟和關閉檔案
現在,您已經可以向標準輸入和輸出進行讀寫。現在,來看看怎麼讀寫實際的資料檔。
Python 提供了必要的函數和方法進行預設情況下的檔案基本操作。你可以用 file 物件做大部分的檔案操作。
open 函數
你必須先用Python內建的open()函數開啟一個文件,建立一個file對象,相關的方法才可以呼叫它進行讀寫。
語法:
file object = open(file_name [, access_mode][, buffering]
各個參數的細節如下:
#file_name:file_name變數是一個包含了你要存取的檔案名稱的字串值。
access_mode:access_mode決定了開啟檔案的模式:唯讀,寫入,追加等。所有可取值請見如下的完全列表。這個參數是非強制的,預設檔案存取模式為唯讀(r)。
buffering:如果buffering的值設為0,就不會有寄存。若buffering的值取1,存取文件時會寄存行。如果將buffering的值設為大於1的整數,表示了這就是的寄存區的緩衝大小。若取負值,寄存區的緩衝大小則為系統預設。
不同模式開啟檔案的完整清單:
模式 描述
r 以唯讀方式開啟文件。文件的指針將會放在文件的開頭。這是預設模式。
rb 以二進位格式開啟一個檔案用於唯讀。文件指針將會放在文件的開頭。這是預設模式。
r+ 開啟一個檔案用於讀寫。文件指針將會放在文件的開頭。
rb+ 以二進位格式開啟一個檔案用於讀寫。文件指針將會放在文件的開頭。
w 開啟一個檔案只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。
wb 以二進位格式開啟一個檔案只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。
w+ 開啟一個檔案用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。
wb+ 以二進位格式開啟一個檔案用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,請建立新文件。
a 開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,請建立新文件進行寫入。
ab 以二進位格式開啟一個檔案用於追加。如果該檔案已存在,則檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,請建立新文件進行寫入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
File对象的属性
一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。
以下是和file对象相关的所有属性的列表:
属性 描述
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回0。否则返回1。
示例4
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx filetest = open("file.txt", "wb") print "文件是否关闭:", filetest.closed print "文件模式:", filetest.mode print "文件名称:", filetest.name print "是否强制在末尾加空格:", filetest.softspace
示例4 运行结果:
文件是否关闭: False 文件模式: wb 文件名称: file.txt 是否强制在末尾加空格: 0
close()方法
File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。
语法:
fileObject.close();
示例5
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx filetest = open("file.txt", "wb") print "文件是否关闭:", filetest.closed print "文件模式:", filetest.mode print "文件名称:", filetest.name print "是否强制在末尾加空格:", filetest.softspace print "关闭文件!" filetest.close() # 关闭文件 print "文件关闭成功!"
示例5 结果:
文件是否关闭: False 文件模式: wb 文件名称: file.txt 是否强制在末尾加空格: 0 关闭文件! 文件关闭成功!
5.读写文件
file对象提供了一系列方法,能让我们的文件访问更轻松。来看看如何使用read()和write()方法来读取和写入文件。
write()方法
write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
write()方法不会在字符串的结尾添加换行符('\n'):
语法:
fileObject.write(string);
在这里,被传递的参数是要写入到已打开文件的内容。
示例6
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx filetest = open("file.txt", "wb") filetest.write("python 编程语言可以用到很多地方") print "关闭文件!" filetest.close() # 关闭文件 print "文件关闭成功!" print "重新打开读取文件!" filetest = open("file.txt", "rb") strs = filetest.read(1024) print "文件我内容是:",strs
示例6 运行结果:
关闭文件! 文件关闭成功! 重新打开读取文件! 文件我内容是: python 编程语言可以用到很多地方
read()方法
read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
语法:
fileObject.read([count])
在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。
用例参考示例6
6文件位置
tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。
seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
示例7:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx filetest = open("file.txt", "wb") filetest.write("python 编程语言可以用到很多地方") # 打开文件 filetest = open("file.txt", "rb") strs = filetest.read(10) print "文件内容是:", strs # 定位文件位置 p = filetest.tell() print "文件当前位置", p # 重新设置文件读取的位置 filetest.seek(0, 0) print "将文件位置重新设置成功!!!" print "重新设置指针位置之后读取的文件" strs = filetest.read(10) print "文件内容是:", strs print "关闭文件!" filetest.close() # 关闭文件 print "文件关闭成功!"
示例7运行结果:
文件内容是: python 编 文件当前位置 10将文件位置重新设置成功!!! 重新设置指针位置之后读取的文件 文件内容是: python 编 关闭文件! 文件关闭成功!
7.重命名和删除文件
Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。
要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。
rename()方法:
rename()方法需要两个参数,当前的文件名和新文件名。
语法:
os.rename(current_file_name, new_file_name)
示例8:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx import os filetest = open("myfile.txt", "wb") # 文件写入内容 filetest.write("python 基础学习") # 未年检关闭! filetest.close() # 文件重新命名 os.rename("myfile.txt", "renamefile.txt") print "重新命名后的文件名称是:", filetest.name # 以只读方式打开重命名文件 fileremane = open("renamefile.txt", "r") strs = fileremane.read(100) print "文件名称:", fileremane.name print "读取修改后文件的内容是:", strs
示例 8 运行结果:
重新命名后的文件名称是: myfile.txt
文件名称: renamefile.txt
读取修改后文件的内容是: python 基础学习
注意:如果目录下面已经存在相关名称文件,那么重命名就会出现异常
remove()方法
你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。
语法:
os.remove(file_name)
示例 9
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx import os filetest = open("myfile.txt", "wb") # 文件写入内容 filetest.write("python 基础学习") # 未年检关闭! filetest.close() # 删除文件 os.remove("myfile.txt") # 重新读取删除掉的文件 filetest = open("myfile.txt", "rb") # 打印出文件内容 print "文件内容是:", filetest.read(10)
示例 9 运行结果
Traceback (most recent call last): File "E:/python/hello/untitled3/filetest.py", line 14, in <module> filetest = open("myfile.txt", "rb") IOError: [Errno 2] No such file or directory: 'myfile.txt'</module>
运行结果:因为读取了一个删除掉的文件,所以会报异常
8. Python里的目录
所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。
mkdir()方法
可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。
语法:
os.mkdir("newdir")
chdir()方法
可以用chdir()方法来改变当前的目录,修改目录路径。chdir()方法需要的一个参数是你想设成当前目录的目录名称。
语法:
os.chdir("newdir")
getcwd()方法
getcwd()方法显示当前的工作目录。
语法:
os.getcwd()
rmdir()方法
rmdir()方法删除目录,目录名称以参数传递。
在删除这个目录之前,它的所有内容应该先被清除。
语法:
os.rmdir('dirname')
示例10:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2016/9/25 15:12 # @Author : wwyx import os # 创建一个目录 os.mkdir("mydir") # 获取当前目录 nowdir = os.getcwd() print "当前目录:", nowdir # 重新定位目录,修改目录路径 os.chdir("mydir") # 获取修改后的目录路径 updatedir = os.getcwd() print "修改后的当前目录是:",updatedir ind = updatedir.rfind("\\") print "截取后的字符串", ind print "type:", type(updatedir) newdir = updatedir[0:int(ind)] print "new dir", newdir # 重新定位目录,修改目录路径 os.chdir(newdir) # 获取修改后的目录路径 updatedir = os.getcwd() print "修改后的当前目录是:",updatedir # 删除目录 os.rmdir("mydir") # 获取删除后的目录路径 deletedir = os.getcwd() print "修改后的当前目录是:",deletedir
示例10 运行结果:
当前目录: E:\python\hello\untitled3 修改后的当前目录是: E:\python\hello\untitled3\mydir 截取后的字符串 25type: <type>new dir E:\python\hello\untitled3 修改后的当前目录是: E:\python\hello\untitled3 修改后的当前目录是: E:\python\hello\untitled3</type>
9.文件、目录相关的方法
三个重要的方法来源能对Windows和Unix操作系统上的文件及目录进行一个广泛且实用的处理及操控,如下:
File 对象方法: file对象提供了操作文件的一系列方法。
OS 对象方法: 提供了处理文件及目录的一系列方法。
以上是python檔案File輸入輸出的基本操作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Arraysinpython,尤其是Vianumpy,ArecrucialInsCientificComputingfortheireftheireffertheireffertheirefferthe.1)Heasuedfornumerericalicerationalation,dataAnalysis和Machinelearning.2)Numpy'Simpy'Simpy'simplementIncressionSressirestrionsfasteroperoperoperationspasterationspasterationspasterationspasterationspasterationsthanpythonlists.3)inthanypythonlists.3)andAreseNableAblequick

你可以通過使用pyenv、venv和Anaconda來管理不同的Python版本。 1)使用pyenv管理多個Python版本:安裝pyenv,設置全局和本地版本。 2)使用venv創建虛擬環境以隔離項目依賴。 3)使用Anaconda管理數據科學項目中的Python版本。 4)保留系統Python用於系統級任務。通過這些工具和策略,你可以有效地管理不同版本的Python,確保項目順利運行。

numpyarrayshaveseveraladagesoverandastardandpythonarrays:1)基於基於duetoc的iMplation,2)2)他們的aremoremoremorymorymoremorymoremorymoremorymoremoremory,尤其是WithlargedAtasets和3)效率化,效率化,矢量化函數函數函數函數構成和穩定性構成和穩定性的操作,製造

數組的同質性對性能的影響是雙重的:1)同質性允許編譯器優化內存訪問,提高性能;2)但限制了類型多樣性,可能導致效率低下。總之,選擇合適的數據結構至關重要。

到CraftCraftExecutablePythcripts,lollow TheSebestPractices:1)Addashebangline(#!/usr/usr/bin/envpython3)tomakethescriptexecutable.2)setpermissionswithchmodwithchmod xyour_script.3)

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6
視覺化網頁開發工具