[Python] python3 文件操作:從鍵盤輸入、打開關閉文件、讀取寫入文件、重命名與刪除文件等


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM