zoukankan      html  css  js  c++  java
  • [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()方法不会在字符串的末尾添加换行符(‘ ‘)

        

        只需要一个参数,即需要写入的文本内容

        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

  • 相关阅读:
    LINUX下Mplayer的设置和作用
    C#的New关键字的几种用法
    Windows Mobile中实现统计图形的绘制(C#版,柱状图)
    maven install时跳过测试
    深入理解Java虚拟机二 阅读笔记
    VMware上安装虚拟机教程
    巴菲特的人生观
    全球15个顶级技术类博客
    针对Android里没有Arrays.CopyOf的解决办法
    Android基础project各个文件夹作用
  • 原文地址:https://www.cnblogs.com/Twobox/p/7428083.html
Copyright © 2011-2022 走看看