zoukankan      html  css  js  c++  java
  • python--文件操作

    1、文件的作用
      存储数据,读写文件是最常见的 I/O 操作

    2、打开和关闭文件

    # 步骤:
    # 1)打开文件,获取文件描述符
    # 2)操作文件描述符-->读/写
    # 3)关闭文件close()-->文件读写完成后应该及时关闭:1、占用资源;2、数据丢失
    f = open('test.txt', 'rw+')    # 打开文件
    print(f.read())
    f.close()    # 关闭文件

    3、文件打开模式的区别
      1)文件、文本模式和二进制模式
        Windows换行:
        Linux换行:
        mac换行:
        文件:文件本质上都是以二进制的模式存储在磁盘上的,用不同编译器打开会有编译的问题。
        文本模式:文件用文本模式操作,会进行换行符的转换。不同操作系统之间文本模式的不同,本质上就是因为换行符的不同
        二进制模式:文件用二进制模式操作,不会进行换行符的转换

      2)open函数

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

      参数说明(主要关注file和mode):

    • file参数:表示文件的路径,可以是绝对路径也可以是相对路
    • modle参数:
    modle 说明
    read
    w write 覆盖原数据,文件不存在则新建
    a append 追加,文件不存在则新建
    r+ 在r的基础上增加了可写功能,首位开始更新文件内容
    w+ 在w的基础上增加了可读功能,会将文件内容清空
    a+ 在a的基础上增加了可读功能,内容只能加在文件末尾
    rb read binary
    wb  write binary
    ab append binary
    • abuffering 表示缓冲区的策略选择
    • encoding     指名文件的编码,仅适用于文本文件
    • errors        指明编码和解码错误时怎么样处理,不能在二进制模式下使用
      • 1)当指明为’strict’时,编码出错则抛出异常ValueError。 
      • 2)当指明为’ignore’时,忽略错误。
      • 3)当指明为’replace’时,使用某字符进行替代模式,比如使用’?’来替换出错的字符。
      • 4)其它相应还有surrogateescape/xmlcharrefreplacs/backslashreplace。
    • newline     控制文本模式下一行的结束字符。可以是None,’’, , , 等 
    • closefd      用来给一个文件句柄传进来,当退出文件使用时,不对文件句柄进行关闭。如果传递一个文件名进来,这个参数无效,必定为True方式。
    • opener      用来实现自己定义打开文件方式,较复杂

    4、如何在程序中进行文件读写

    # 1)读写操作
    f = open('test.txt', 'rw')
    # 文件写操作
    f.write('第一次写数据!')
    # 文件读操作    read(num)    num,文件字数
    print(f.read())
    f.close()
    
    # 2)写函数    write() writelines()
    f = open('test.txt', 'w')
    # write() 一次写入一行数据
    f.write('第一次写数据!')
    # writelines() 一次写入多行数据,列表元素中一个元素代表一行
    lines = ['a ', 'b ', 'c '] f.writelines(lines) f.close() # 3)读函数 read(num) readline() readlines() f = open('test.txt', 'r') # read(num) num,文件字数,为空则读取文件所有数据 print(f.read(5)) # readline() 依次读取一行数据 print(f.readline()) # 读取第一行 print(f.readline()) # 读取第二行 print(f.readlines()) # 一次读取所有行,返回列表
    # 小练习:读取文件并去除空格,输出在屏幕
    for line in f.readlines():   if line[-1] == ' ':     print(line[:-1])   else:     print(line) f.close()

    5、with语句(语法糖),执行文件后自动关闭文件。

    with open('test.txt', 'w') as f:
        f.write('我使用with后重新覆盖范本内容,并赋值给f!!!')
    with open('test.txt', 'a') as f:
        f.write('
    我再多说一句,我现在不需要再使用close()去保存文件了,直接使用with语句就可以了!')
    with open('test.txt', 'r') as f:
        print(f.read())

    6、文件操作

    # 1)文件重命名
    import os
    os.rename('a.bk.txt', 'hello.txt')
    
    # 2)文件删除
    os.remove('hello.txt')
    
    # 3)获得文件名列表
    os.listdir()
    
    # 4)创建和删除文件夹
    os.mkdir('abc')
    os.rmdir('abc')
  • 相关阅读:
    树链剖分 关于点权与边权的转换
    2018 CCPC 吉林站 H Lovers || HDU 6562 (线段树哦)
    统计学习方法(一)概念
    python学习心得(三)
    python学习心得
    Python学习:基本概念
    Python学习(一)
    SparkMLlib聚类学习之KMeans聚类
    SparkMLlib回归算法之决策树
    SparkMLlib学习之线性回归
  • 原文地址:https://www.cnblogs.com/xiaohuboke/p/13574241.html
Copyright © 2011-2022 走看看