首页 > 编程语言 >Python 文件操作(转载)

Python 文件操作(转载)

时间:2023-06-17 11:01:49浏览次数:34  
标签:__ 文件 Python unknown self file real 转载

Python 文件操作

操作文件时,一般需要经历如下步骤

  • 打开文件
  • 操作文件

一、打开文件

文件句柄 = open('文件路径', '模式')

打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。

  • 打开文件的模式有
r,只读模式(默认)。
w,只写模式。【不可读;不存在则创建;存在则删除内容;】
a,追加模式。【可读;   不存在则创建;存在则只追加内容;】
  • "+" 表示可以同时读写某个文件
r+,可读写文件。【可读;可写;可追加】
w+,写读
a+,同a
  • "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU
r+U
  • "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
rb
wb
ab

二、操作文件

文件方法
class file(object):
  
    def close(self): # real signature unknown; restored from __doc__
        关闭文件
        """
        close() -> None or (perhaps) an integer.  Close the file.
         
        Sets data attribute .closed to True.  A closed file cannot be used for
        further I/O operations.  close() may be called more than once without
        error.  Some kinds of file objects (for example, opened by popen())
        may return an exit status upon closing.
        """
 
    def fileno(self): # real signature unknown; restored from __doc__
        文件描述符  
         """
        fileno() -> integer "file descriptor".
         
        This is needed for lower-level file interfaces, such os.read().
        """
        return 0    
 
    def flush(self): # real signature unknown; restored from __doc__
        刷新文件内部缓冲区
        """ flush() -> None.  Flush the internal I/O buffer. """
        pass
 
 
    def isatty(self): # real signature unknown; restored from __doc__
        判断文件是否是同意tty设备
        """ isatty() -> true or false.  True if the file is connected to a tty device. """
        return False
 
 
    def next(self): # real signature unknown; restored from __doc__
        获取下一行数据,不存在,则报错
        """ x.next() -> the next value, or raise StopIteration """
        pass
 
    def read(self, size=None): # real signature unknown; restored from __doc__
        读取指定字节数据
        """
        read([size]) -> read at most size bytes, returned as a string.
         
        If the size argument is negative or omitted, read until EOF is reached.
        Notice that when in non-blocking mode, less data than what was requested
        may be returned, even if no size parameter was given.
        """
        pass
 
    def readinto(self): # real signature unknown; restored from __doc__
        读取到缓冲区,不要用,将被遗弃
        """ readinto() -> Undocumented.  Don't use this; it may go away. """
        pass
 
    def readline(self, size=None): # real signature unknown; restored from __doc__
        仅读取一行数据
        """
        readline([size]) -> next line from the file, as a string.
         
        Retain newline.  A non-negative size argument limits the maximum
        number of bytes to return (an incomplete line may be returned then).
        Return an empty string at EOF.
        """
        pass
 
    def readlines(self, size=None): # real signature unknown; restored from __doc__
        读取所有数据,并根据换行保存值列表
        """
        readlines([size]) -> list of strings, each a line from the file.
         
        Call readline() repeatedly and return a list of the lines so read.
        The optional size argument, if given, is an approximate bound on the
        total number of bytes in the lines returned.
        """
        return []
 
    def seek(self, offset, whence=None): # real signature unknown; restored from __doc__
        指定文件中指针位置
        """
        seek(offset[, whence]) -> None.  Move to new file position.
         
        Argument offset is a byte count.  Optional argument whence defaults to
        0 (offset from start of file, offset should be >= 0); other values are 1
        (move relative to current position, positive or negative), and 2 (move
        relative to end of file, usually negative, although many platforms allow
        seeking beyond the end of a file).  If the file is opened in text mode,
        only offsets returned by tell() are legal.  Use of other offsets causes
        undefined behavior.
        Note that not all file objects are seekable.
        """
        pass
 
    def tell(self): # real signature unknown; restored from __doc__
        获取当前指针位置
        """ tell() -> current file position, an integer (may be a long integer). """
        pass
 
    def truncate(self, size=None): # real signature unknown; restored from __doc__
        截断数据,仅保留指定之前数据
        """
        truncate([size]) -> None.  Truncate the file to at most size bytes.
         
        Size defaults to the current file position, as returned by tell().
        """
        pass
 
    def write(self, p_str): # real signature unknown; restored from __doc__
        写内容
        """
        write(str) -> None.  Write string str to file.
         
        Note that due to buffering, flush() or close() may be needed before
        the file on disk reflects the data written.
        """
        pass
 
    def writelines(self, sequence_of_strings): # real signature unknown; restored from __doc__
        将一个字符串列表写入文件
        """
        writelines(sequence_of_strings) -> None.  Write the strings to the file.
         
        Note that newlines are not added.  The sequence can be any iterable object
        producing strings. This is equivalent to calling write() for each string.
        """
        pass
 
    def xreadlines(self): # real signature unknown; restored from __doc__
        可用于逐行读取文件,非全部
        """
        xreadlines() -> returns self.
         
        For backward compatibility. File objects now include the performance
        optimizations previously implemented in the xreadlines module.
        """
        pass

三、常用方法

  • write 向文件中写数据
# 向文件中写数据
f = open('test.log', 'w')
f.write('evescn\n')
f.write('evescn')
f.close()
 
# test.log文件数据
evescn
evescn 
  • read 读取文件中的数据
# 读取文件中的数据
# f = open('test.log', 'r', encoding='utf-8')  #文件中有中文需要指定utf-8格式
f = open('test.log', 'r')
ret = f.read(10)    #读取文本中前10个字符串,换行符也算一个符号
f.close()
 
print(ret)
 
f = open('test.log', 'r')
ret = f.readline()    # 读取文本中的一行
f.close()
 
print(ret)
 
f = open('test.log', 'r')
ret = f.readlines()    # 读取所有文本
f.close()
 
print(ret)
 
# 输出结果
evescn    # read
evescn    # readline
['evescn\n', 'evescn']    # readlines
  • seek函数和tell函数
# seek函数和tell函数
f = open('test.log', 'r+')
f.seek(1)           # 设置指针位置
print(f.tell())      # 查看当前指针位置
ret = f.read(2)   # 指定读取几个字符
print(f.tell())      # 查看当前指针位置
 
# 输出结果
1
3
  • truncate函数
# truncate函数 
f = open('test.log', 'r+')
f.seek(5)   #设置指针位置
f.truncate()   #把指针后的字符删除
f.close()
 
f = open('test.log', 'r', encoding='utf-8')
ret = f.readlines()
f.close()
 
print(ret)
 
# 输出结果
['evesc']

四、with

为了避免打开文件后忘记关闭,可以通过管理上下文,即

with open('log','r') as f:     
    pass

如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即

with open('log1') as obj1, open('log2') as obj2:
    pass

转载

转载自:http://www.cnblogs.com/wupeiqi/articles/4943406.html

标签:__,文件,Python,unknown,self,file,real,转载
From: https://www.cnblogs.com/evescn/p/17487155.html

相关文章

  • 文件
    在程序设计中文件有两种:程序文件,数据文件。文件类型:根据数据的组织形式,数据文件被称为文本文件或二进制文件数据在内存中以二进制的形式储存,如果不加转换的输出到外存,就是二进制文件文件指针:缓冲文件中,关键的概念是“文件类型指针”,简称“文件指针”。scanf/printf是针对标准输入......
  • Python os 模块简述
    os模块简介os就是“operatingsystem”的缩写,顾名思义,os模块提供的就是各种Python程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页也可以极大增强代码的可移植性。如果该模块中相关功能出错,会抛出OSError异常或其子类异常。impo......
  • 通过Systemctl管理自定义linux服务文件
    Systemd默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。systemctlenable命令用于在上面两个目录之间,建立符号链接关系。sudosystemctlenable[example]等同于sudoln-......
  • Python程序与设计
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • Python数据类型-字典与集合
    """题目1:下面关于字典的定义正确的是:CA.d={1,}B.d={1,2:3,4}C.d={'name':'xinlan','age':18}D.d={[1,2]:[3,4],'age':18}"""#题目2:请创建一个字典用来表示你自己的个人信息。有哪些key由你自己来决定。my_info={'name':&......
  • [转载]探索 StableDiffusion:生成高质量图片学习及应用
    转自公众号大淘宝技术 本文主要介绍了StableDiffusion在图片生成上的内容,然后详细说明了StableDiffusion的主要术语和参数,并探讨了如何使用prompt和高级技巧(如图像修复、训练自定义模型和图像编辑)来生成高质量的图片。 介绍StableDiffusion ▐ ......
  • [转载]ChatGPT:智能化游戏测试的新尝试
    转自公众号网易雷火测试中心当下,ChatGPT红遍了全网,作为一个被认为会对人类社会产生威胁的聊天机器人。ChatGPT是不是真的有那么神奇?好奇心驱使下,作者对ChatGPT做了一些简单的试用,并思考了ChatGPT以及类似相关的AI工具能给我们的游戏测试工作带来哪些启发和效率提......
  • Day01 1.4 Python虚拟环境的搭建
    Day011.4Python虚拟环境的搭建【一】虚拟环境介绍(1)虚拟环境优点1、使不同应用开发环境相互独立2、环境升级不影响其他应用,也不会影响全局的python环境3、防止出现包管理混乱及包版本冲突(2)什么是虚拟环境,为什么要有它?它解决了什么问题操作系统装了python3.8使用djang......
  • 文件系统
    用户态和内核态运行在内核态的进程可以毫无限制的访问各种资源,而在用户态下的用户进程的各种操作都有着限制,比如不能随意的访问内存、不能开闭中断以及切换运行的特权级别。操作系统一般是通过软件中断从用户态切换到内核态。函数工作流程虚拟地址空间每个进程都会分配虚拟......