一、文件

  • 长久保存信息,连续的字节(字符)序列
  • 文件对象
    • 内置函数

      • open(file_name,access_mode,buffering)
      • file()
    • 内置方法
      • 输出

        • read(size):从文件读取size个字节(一次最多可读取的字符(或字节)数),当未给定或给定负值的时候,读取剩余的所有字节,然后后作为字符串返回
        • readline(size):从文件中读取并返回一行(包括行结束符),或返回最大size个字符
        • readlines(sizhint=0):读取文件的所有行并作为一个列表返回(包含所有行的结束符)
      • 输入
        • write():向文件写入字符串
        • writelines():向文件写入字符串序列seq
      • 移动
        • file.seek(off,whence=0):在文件中移动文件指针,从whence(0代表文件开始,1代表当前位置,2代表文件末尾)偏移off字节
        • file.tell():返回当前文件中的位置
      • os模块
        • listdir(path):列出目录下的文件
        • getcwd():获取当前工作目录
        • chdir(newdir):改变工作目录
        • makedirs(name, mode=511, exist_ok=False):创建多级目录
        • mkdir(path):创建单个目录
        • removedirs(path):删除多个目录
        • rmdir(path):删除单个目录
        • chmod(file):修改文件权限与时间戳
        • path.split(path):分离文件名
        • path.basename(path):获取文件名
        • path.exists(path):判断文件或目录是否存在
        • path.isdir(path):判断是否是目录
        • path.isfile(path):判断是否是文件
        • path.getsize(file):获取文件大小
        • linesep:用于在文件中分隔行的字符串
        • sep:用来分隔文件路径名的字符串
        • pathsep:用于分隔文件路径的字符串
        • curdir:当前工作目录的字符串名称
        • pardir:(当前工作目录的)父目录字符串名称
      • 内置属性
        • file.close 表示文件已经被关闭,否则为False
        • file.encoding 表示文件所使用的编码
        • file.mode 表示文件打开时的范问模式
        • file.name 表示文件已经被关闭,否则为False
        • file.newlines 表示文件所采用的分隔符
        • file.softspace 为0表示在输出一数据后,要再加上一个空格符,为1表示不加,这个属性一般用不到
      • 标准文件对象
        • 标准输入

          • sys.stdin
          • sys.stdin.read() 类文件对象,可以调用文件对象的方法
        • 标准输出
          • sys.stdout
          • sys.stdout.write()
        • 标准错误
      • sys.error
      • 持久化

二、打开关闭

2.1、open函数

  • 负责打开文件,带有很多参数
  • 第一个参数(文件的路径和名称)必须有
  • 第二个参数mode:表明文件用什么方式打开
    • r:以只读方式打开
    • w:写方式打开,会覆盖之前的内容
    • x:创建方式打开,如文件已存在,报错
    • a:append方式,以追加的方式对文件内容进行写入
    • b:binary方式,二进制方式写入
    • t:文本方式打开
    • +:可读写
# 打开文件,用写的方式

2.2、with & read & readline & readlines

  • with语句使用的技术是一种称为上下文管理协议的技术
  • 自动判断文件的作用域,自动关闭不在使用的已打开的文件句柄
# with语句案例

2.3、seek(offset,from)

  • 移动文件的读取位置,也叫读取指针
  • from的取值范围:
    • 0:从文件头开始偏移
    • 1:从文件当前位置开始偏移
    • 2:从文件末尾开始偏移
  • 移动的单位是字节(byte)
  • 一个汉字由若干个字节构成
  • 返回文件只针对当前位置
# seek案例

2.4 tell()

# tell函数:用来显示文件读写指针的当前位置

2.5、文件的写操作-write

  • write(str) 把字符串写入文件
  • writeline(str) 把字符串按行写入文件
  • 区别:
    • write函数参数只能是字符串
    • writelines参数可以是字符串,也可以说字符序列
# write案例

三、持久化

3.1、持久化 - pickle

  • 序列化:把程序运行中的信息保存在磁盘上
  • 反序列化:序列化的逆过程
  • pickle:python提供的序列化模块
  • pickle.dump:序列化
  • pickle.load:反序列化
import 

3.2、持久化-shelve

  • 持久化工具
  • 类似字典,用kv保存数据,存取方式跟字典类似
  • open,close
import 

3.3、shelve特性

  • 不支持多个应用并行写入

    • 为了解决这个问题,open的时候可使用flag=r
  • 写回问题
    • shelv不会等待持久化对象进行任何修改
    • 解决方法:强制写回,writeback=True
# 

练习

# 1、编写一个程序,接收用户输入的内容,并且保存为新的文件,如果用户输入:w,表示文件保存退出

file 关闭_python文件file相关推荐

  1. python open方法下file模块_python 文件操作

    一.基本概述 基本的文件操作也就常见的几种,创建.打开.读取.写入和关闭文件等.Python中有几个内置模块和方法来处理文件.这些方法在例如os,os.path,shutil和pathlib等等几个模 ...

  2. python循环写文件时、io需不需要关闭_Python文件IO(普通文件读写)

    ## 打开一个文件 - fileobj = open(filename, mode) 其中: fileobj是open()返回的文件对象 filename是该文件的字符串名 mode是指明文件类型和操 ...

  3. python文件处理seek()方法的参数是_Python 文件(File) seek() 方法

    例如: 将当前文件位置更改为4,然后返回其余行:f = open("demofile.txt", "r") f.seek(4) print(f.readline ...

  4. python中file是什么意思_python文件file

    # 1.编写一个程序,接收用户输入的内容,并且保存为新的文件,如果用户输入:w,表示文件保存退出 with open(r'/Users/liucheng/Desktop/input2.txt', 'w ...

  5. new file会创建文件吗_Rust 文件系统处理之文件读写 Rust 实践指南

    Rust 中,文件读写处理简单而高效.代码也很紧凑,容易阅读.我们从读取文件的字符串行.避免读取写入同一文件.使用内存映射随机访问文件这三个文件处理中的典型案例来了解一下. 文件处理场景大家都很熟悉, ...

  6. file数组 删除文件_java编程IO基础之一:File类

    在整个java.io包中,File类是唯一的一个与文件本身操作有关的类,既可以执行文件的创建.删除.重命名,取得文件大小和修改日期. File的构造函数: public File(String pat ...

  7. Java中File使用--创建文件

    1.错误示范1,输出的是创建文件夹 D:\filepath\test\test.txt. public class FileTest {public static void main(String[] ...

  8. 服务器共享文件夹 关闭打开文件,dos命令net file图文教程,显示打开共享文件名关闭删除文件锁...

    大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天我们学习net命令中file,此命令的语法是: NET FILE [id [/CLOSE]] N ...

  9. python文件输入符_python文件IO与file操作

    1 标准输入输出IO - (1) 打印到屏幕 print() print(self, *args, sep=' ', end='n', file=None): 把传递的表达式 转换成一个 字符串表达式 ...

最新文章

  1. 写一个会导致死锁的线程
  2. 向高手进阶,从 0 开始手写实现一个 RPC 框架!
  3. 【Linux】一步一步学Linux——egrep命令(50)
  4. python设计大赛_GitHub - FatBallFish/Multimedia-Python: 多媒体设计大赛-Python后端
  5. cpu 被挂起和阻塞_迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章...
  6. 机器学习时显卡频率莫明其妙的降低了?
  7. paginatorhelper ajax,Bootstrap Paginator+PageHelper实现分页效果_蓝瞳_前端开发者
  8. SQL必知必会-排序检索数据
  9. 图像直方图原理与Python实现
  10. tcp丢包率_网络编程 | TCP/IP基础知识
  11. java+c#+json+时间_Java与C#间json日期格式互转完美解决方案
  12. 模拟ArrayList扩容
  13. 猫猫学iOS之小知识之xcode6自己主动提示图片插件 KSImageNamed的安装
  14. IDEA格式化XML中的SQL语句
  15. c语言温度转换作业帮,C++摄氏度和华氏度互相转化
  16. 傅盛:认知升级三部曲(深度好文)
  17. 2019年什么工作最有前景?互联网/IT行业职业方向大盘点!
  18. 组策略 禁止用户策略下发到指定计算机,如何通过组策略限制域里面某一指定用户...
  19. 写在入职两周年纪念日
  20. 【Matlab WSN通信】A_Star改进LEACH多跳传输协议【含源码 487期】

热门文章

  1. 日本比中国快一个小时,泰国比中国慢一个小时
  2. C#基础 字符串读取/写入文本文件 代码示例
  3. Open/Close Port in Centos
  4. 模式分类笔记--聚类分析算法
  5. ACM/ICPC 之 DP解有规律的最短路问题(POJ3377)
  6. 我的iOS学习历程 - UISlider(简单的设置一组图片动画)
  7. machine learning (2)-linear regression with one variable
  8. documentElement vs body区别
  9. 女人 不要让身边的男人太累
  10. @Scheduled(cron = 0/5 * * * * *)将时间改为配置