1、從鍵盤輸入
Python 2有兩個內置的函數用於從標准輸入讀取數據,默認情況下來自鍵盤。這兩個函數分別是:input()和raw_input()。
Python 3中,不建議使用raw_input()函數。 input()函數可以從鍵盤讀取的全都會轉化為字符串類型。
圖中可以看出 就算我們輸入 123456789 input() 函數 還是完全把他看做 字符串
2、打開和關閉文件
Python提供了默認操作文件所必需的基本功能和方法。可以使用文件對象執行大部分文件操作。
一下方法為 Python內置 方法,不需要導入包。
1、打開文件
在讀取或寫入文件之前,必須使用Python的內置open()函數打開文件。此函數創建一個文件對象,該對象將用於調用與其相關聯的其他支持方法。
在 Pycharm IDE 中 輸入 open(), 然后按住 Ctrl 並且鼠標單擊 open,即可查看 open 方法。
參數:
file:參數是一個字符串類型,指定要訪問的文件名稱
mode:確定文件打開的模式,即讀取,寫入,追加等。可能的值的完整列表如下表所示。 這是一個可選參數,默認文件訪問模式為(r - 也就是只讀)。
一般情況下 只需要 填入這兩個參數即可,其他保持默認。
以下是打開文件使用的模式的列表 :
2、文件對象屬性
打開一個文件並且有一個文件對象后,可以獲得與該文件相關的各種信息。
以下是與文件對象相關的所有屬性的列表:
3、close() 方法
文件對象的close()方法刷新任何未寫入的信息並關閉文件對象,之后不能再進行寫入操作。
當文件的引用對象重新分配給另一個文件時,Python也會自動關閉一個文件。但使用close()方法關閉文件是個好習慣。
語法:fileName.close()
3、讀取與寫入文件
文件對象提供了一組訪問方法,使代碼編寫更方便。read()和write()方法 分別用來讀取和寫入文件。
1、write()方法
write()方法將任何字符串寫入打開的文件。 重要的是要注意,Python字符串可以是二進制數據,而不僅僅是文本。
write()方法不會在字符串的末尾添加換行符(‘\n‘)
只需要一個參數,即需要寫入的文本內容
PS.打開文件的時候需要給予寫入的相關權限。
2、read()方法
read()方法用於從打開的文件讀取一個字符串。 重要的是要注意Python字符串除文本數據外可以是二進制數據。
這里,傳遞參數 n 是從打開的文件讀取的字節數。
該方法從文件的開始位置開始讀取,如果 n 不指定值,則讀取全文。
4、文件位置
tell()方法
用於獲取文件中的當前位置; 換句話說,下一次讀取或寫入將發生在從文件開始處之后的多個字節數的位置。
seek(offset [,from])方法:
更改當前文件位置。 offset參數表示要移動的字節數。 from參數指定要移動字節的引用位置。
from參數:
設置為0,則將文件的開頭作為參考位置。 如果設置為1,則將當前位置用作參考位置。 如果設置為2,則文件的末尾將被作為參考位置。
5、重命名和刪除文件
Python os模塊 提供用於執行文件處理操作(如重命名和刪除文件)的方法。要使用此模塊,需要先將它導入,然后可以調用任何相關的函數。
1、rename()方法
rename()方法 有兩個參數,即 當前的文件名 和 新的文件名。
2、remove()方法
remove()方法 通過提供要刪除的文件的名稱作為參數來刪除文件。
6、補充
1、Python 文件對象 的 方法
2、os模塊 的 方法 (略取了一部分)
7、文件讀取、寫入 (配合 文件選擇對話框) 代碼
1 # coding: utf-8 2 # author: Twobox 3 4 import wx 5 import os 6 7 class MyWin(wx.Frame): 8 def __init__(self, parent, title): 9 super(MyWin, self).__init__(parent=parent, title=title) 10 self.wildcard = "文本文件 (*.txt)|*.txt" 11 self.initUI() 12 self.Show() 13 14 def initUI(self): 15 panel = wx.Panel(self) 16 17 vbox = wx.BoxSizer(wx.VERTICAL) 18 panel.SetSizer(vbox) 19 20 hbox1 = wx.BoxSizer(wx.HORIZONTAL) 21 hbox2 = wx.BoxSizer(wx.HORIZONTAL) 22 vbox.Add(hbox1, proportion=0, flag=wx.EXPAND | wx.ALL, border=0) 23 vbox.Add(hbox2, proportion=1, flag=wx.EXPAND | wx.ALL, border=0) 24 25 self.fileAddress = wx.TextCtrl(panel) 26 btn1 = wx.Button(panel, label="Open", id=wx.ID_OPEN) 27 btn2 = wx.Button(panel, label="Save", id=wx.ID_SAVE) 28 hbox1.Add(self.fileAddress, proportion=1, flag=wx.EXPAND | wx.ALL, border=5) 29 hbox1.Add(btn1, proportion=0, flag=wx.EXPAND | wx.UP | wx.DOWN, border=5) 30 hbox1.Add(btn2, proportion=0, flag=wx.EXPAND | wx.ALL, border=5) 31 32 # content 內容 conter 中心 33 self.content = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_DONTWRAP) 34 hbox2.Add(self.content, proportion=1, flag=wx.EXPAND | wx.ALL, border=5) 35 36 self.Bind(wx.EVT_BUTTON, self.eventButtonOpen, btn1) 37 self.Bind(wx.EVT_BUTTON, self.eventButtonSave, btn2) 38 39 def eventButtonOpen(self, event): 40 wildcard = self.wildcard 41 dlg = wx.FileDialog(parent=self, message="Please Select File",defaultDir=os.getcwd() ,wildcard=wildcard, style=wx.FD_OPEN) 42 43 if dlg.ShowModal() == wx.ID_OK: 44 # dlg.SetPath("1.txt") # 可以更改選擇好的文件地址 45 # print(dlg.GetPath()) 46 self.fileAddress.SetValue(dlg.GetPath()) 47 with open(dlg.GetPath(), "r") as f: 48 self.content.SetValue(f.read()) 49 dlg.Destroy() 50 51 def eventButtonSave(self, event): 52 wildcard = self.wildcard 53 dlg = wx.FileDialog(parent=self, message="Please ......", defaultDir=os.getcwd(), wildcard=wildcard, style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) 54 55 if dlg.ShowModal() == wx.ID_OK: 56 filePath = dlg.GetPath() 57 self.fileAddress.SetValue(filePath) 58 with open(filePath, "w") as f: 59 f.write(self.content.GetValue()) 60 dlg.Destroy() 61 62 def main(): 63 app = wx.App() 64 MyWin(None, "File Dialog - Test") 65 app.MainLoop() 66 67 if __name__ == '__main__': 68 main()
8、后言
還比較全,一般以后對文件的大部分操作都可以完成了。
O.O 昨天 忘記發博客了(其實是浪了)。
作者參考的資料:http://www.yiibai.com/python/python_files_io.html
轉載請注明出處 (●'◡'●):http://www.cnblogs.com/Twobox/
2017-08-25 14:55:29