zoukankan      html  css  js  c++  java
  • 文件读写

    一、文件打开open

      文件打开针对当前的工作目录。

      可以使用os.chdir() 来改变工作目录

    1.1 open的两种方式

      1.手动挡,需要手动关闭

    f = open('1.py', 'r')
    print(f.read())
    f.close()

      2.自动挡,使用with管理上下文,自动关闭

    with open('1.py', 'r') as f:
        print(f.read())

    1.2 文件读写模式

    # 基本三种模式
      r    以只读模式打开文件,并将文件指针指向文件头;如果文件不存在会报错
      w    以只写模式打开文件,并将文件指针指向文件头;如果文件存在则将其内容清空,如果文件不存在则创建
      a    以只追加可写模式打开文件,并将文件指针指向文件尾部;如果文件不存在则创建
    # 扩展模式
      r+    在r的基础上增加了可写功能,文件指针指向开头
      w+    在w的基础上增加了可读功能, w+,跟w一样,增加了可读功能。
      a+    在a的基础上增加了可读功能,不管文件指针在哪,都移到末尾
    在上面这几种模式中,都可以混搭一个b模式,以二进制的方式进行读写。
    保证在扩平台或其他操作,读写正确。 在lunux下会忽略b,默认就是二进制读取

    二、文件读操作

    2.1  read()

      直接read(),获取全部,一次性存入内存中。返回一个字符串。 针对大文件出错

    2.2 read(size)

      指定size读取,可以解决大文件读取出错。

    while True:
        block = f.read(1024)
        if not block:
            break

    2.3 readline()

      每次读取一行

    while True:
        line = f.readline()
        if not line:
            break

    2.4 readlines():

      读取全部的行,构成一个list,通过list来对文件进行处理,但是这种方式依然会造成MemoyError

    for line in f.readlines():
        ....

    2.5 使用文件描述符,可迭代对象

    with open(filename, 'r') as flie:
        for line in file:
            ....

    三、文件写操作

      写操作就比较的简单了,两种方法

    3.1 write()

      参数为字符串

    3.2 writeline()

      参数为一个序列,比如列表

    四、文件定位

    with open('2.py', 'w+', encoding='utf-8') as f:
        f.write('我是中国人')
        print(f.tell())     # 使用字节来计算,一个汉字3字节,输出15
        f.seek(0)
        print(f.read(3))    # 使用字符来计算,输出 '我是中',因为读的时候有空格或其他符号(1个字节会错乱)
  • 相关阅读:
    airodump-ng的使用及显示
    bash shell 遍历一个数组
    cisco 交换机 IOS命令
    apt-key Debian packages密钥管理命令
    find命令的用法
    bash的快捷键
    groff编写man页
    tcpdump软件使用
    vue 项目常见功能(搜索 时间戳转换 过滤器)
    vue2.0 常见功能 (v-for 配置路由 组件渲染)
  • 原文地址:https://www.cnblogs.com/louhui/p/9061870.html
Copyright © 2011-2022 走看看