一,

r :读取模式(默认值)

 w:写入模式

 x:独占写入模式

 a:附加模式

 b:二进制模式

 t:文本模式(默认值,与其他模式结合使用)

 +:读写模式(与其他模式结合使用)

 r+: 打开文件进行读写,会覆盖文件原内容,重新写入;若文件不存在,则会报错

 w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

1,文件打开:

     使用open()函数打开一个文件,具体步骤如下:

进入python模式:定义环境变量f 设置 f = open('text_datetime2.py')

mode='r':是文件的模式只读方式打开     encoding= 'cp936' 是以此种编码方式打开 (指定编码方式)

可通过help(open)方式打开:会显示出一些帮助的文档 如下图:

dir(f):可以看到很多方法:

    2,文件关闭:

        使用close()函数关闭文件

f.close() 可以关掉文件 注意:需要做异常处理

    

避免只记得打开文件,忘记关闭文件的问题以下介绍新的写法:

with语法(上下文的管理器,在文打开的时候会把上下文记住,用完后会自动回收掉)

写法:with open("text_datetime2.py") as f:do_something(f)

到达该语句末尾时,将自动关闭文件,几遍出现异常亦如此

二,文件的读取:

read()读取文件:可以指定参数,表示读几个字符(字节)

        readline()读取一行数据,可以指定参数,表示读前几个字符(字节)

        readlines()读取所有行,返回列表;

     代码如下:

       

def read_file():file_name = "test"file_path = "E:\\pythonProject\\test" #window下用\\这种斜杠file_path2 = "E:/pythonProject/test"  # mac linux下通用f = open(file_name,encoding='utf-8')"""全部读取"""res = f.read()print(res)"""读取指定字符"""res1 = f.read(10)print(res1)#在进行读取10个字符,接着res1读取的字符的位置继续往后读res2 = f.read(10)print(res2)"""随机读取字符"""#跳过20个字符,在读取5个字符(此时报错,可能因为中文的编码和英文的编码有些不一致,# 可能一个汉字占了两个字节,把文件内容改成英文的就可以正常执行。中文要慎用随机读取)f.seek(10)print(f.read(5))"""按行读取"""res3 = f.readline()print(res3)print(f.readline(4))#指定读取行数"""读取所有行"""res4 = f.readlines()print(res4)f.close()if __name__ == '__main__':read_file()

三,文件的写入:

1,使用wirte()函数向打开的文件对象写入内容:

代码如下,最好放在编辑器里运行一下:

运行结果 会自动新建一个wirte_text的文件,里面会出现写入的 hello world

def write_file():file_name = "write_text"#以写入的方式打开文件f = open(file_name,'w')#写入一行内容f.write('hello')#换行f.write('\n')#在写入一行内容f.write('world')#关闭文件f.close()if __name__ == '__main__':write_file()

2,使用writelines()函数向打开的文件写入多行内容

def write_multi_line():"""向文件中写入多行内容"""file_name = "write_line.text"with open(file_name,'w',encoding='UTF-8') as f:c = ['第一行','\n','第二行','第三行']f.writelines(c)

示例:记录用户日志,以 a 的方式进行打开

import random
from datetime import datetime
def write_user_log():#记录用户时间 + 记录用户的IDrest = "用户:{0} - 访问时间{1}".format(random.randint(100,9000),datetime.now())file_name = "write_user_log.text"with open(file_name,'a',encoding='UTF-8') as f:f.write(rest)f.write('\n')

3,如果既要读取文件,又要写入文件:代码如下

先读 在写入 用 r+ 的 可读可写模式

def read_and_write():file_name = "read_write.text"with open(file_name,'r+',encoding="UTF-8") as f:read_rest = f.read()#如果没有1,写入 哈哈哈#如果有1,写入 嘻嘻嘻if '1' in read_rest:f.write('嘻嘻嘻')else:f.write('哈哈哈')f.write('\n')

Python 文件的读写模式相关推荐

  1. python文件合法模式组合_以下选项中,不是Python文件二进制打开模式的合法组合是...

    以下选项中,不是Python文件二进制打开模式的合法组合是 答:\"x+\" 建立良好的谈判气氛主要是在( )阶段 答:开局 the ruling class had long b ...

  2. Python文件的读写操作

    使用Python编程时,经常会遇到读写文件的操作.对于读写文件的各种模式(如阅读.写入.追加等)有时真的会迷惑人,以及搞不清open.read.readline.readlines.write.wri ...

  3. Python文件的读写以及操作excel

    文件的读写操作 使用open函数打开文件 f = open(文件名,'读写操作') f.close() # 例如 open('root.txt','w') 2.常见的操作有 操作模式 具体含义 'r' ...

  4. Python文件的读写及常用文件的打开方式

    编码格式 常见的编码格式 Python的解释器使用的是Unicode(内存) .py文件在磁盘上使用UTF-8(外存) 更改编码格式 一般形式为在程序开头写 # coding:编码格式.# codin ...

  5. Python文件的读写、正则表达式的运用、多线程与多进程、网络编程

    文章目录 文件的读写 读文件 写文件 写二进制文件 读写``JSON``文件 正则表达式 常用的元字符 字符转义 重复 字符类 分支条件 分组 反义 反向引用 多重继承 多线程 守护线程 线程保护 多 ...

  6. python文件的打开模式有几种_以下选项中,不是Python打开文件模式的是( )_学小易找答案...

    [单选题]下面代码的输出结果是( ) x=12.34+0j print(type(x)) [单选题]在本实验中为什么不使用草酸钠,而使用草酸来制备草酸亚铁? [单选题]减压抽滤时,下述操作不正确的是 ...

  7. python文件二进制读写_Python如何读写二进制文件

    python中可以使用open()函数以指定方式打开文件,然后进行二进制读写. 函数语法open(name[, mode[, buffering]]) 参数说明: name : 一个包含了你要访问的文 ...

  8. python读文件操作-python文件操作-读写删除复制总结

    1. read三种不同的方式 f = open('hello.txt') #'hello.txt'指的是文件的名称 while True: text = f.readline() #读取文件指针指向的 ...

  9. python打开一个文件-python文件的读写

    1.使用open内置函数打开一个文件 file:相对路径或者绝对路径 mode:文件的模式. r 只读 w只写 b:二进制 t:以文本形式打开等等 encoding:编码方式,windows下默认为g ...

最新文章

  1. typeof,instanceof 和 isProtoTypeof
  2. DiscuzX 论坛首页 和 分 区设置版块横排
  3. 解决方案、项目、程序集、命名空间
  4. 每天一个linux命令---导出到文件
  5. webstorm简单介绍,webstrom基本使用
  6. SVN客户端下载和Svn visual studio插件
  7. Struts2之OGNL类型转换
  8. 常用生物信息学格式介绍
  9. 盘姬工具箱 Cruiser EXP for Win v1.1.0 多功能系统工具箱
  10. uniapp app端调起高德地图导航
  11. animejs走马灯_Javript动画特效插件anime.js
  12. halcon模板匹配实践(5)使用橡皮擦涂抹功能实现减少模板匹配特征
  13. 抓包分析TCP首部,三次牵手四次分手过程,序列号确认号计算,为什么握手是三次挥手是四次?
  14. Python爬懂车帝的图片-代码
  15. 2018数学建模国赛回顾(国一)
  16. 怎样在电脑上录制ppt课件?如何录制课件讲解视频
  17. c语言中文网严长生,2.shell语法:shell变量定义和使用
  18. 网易云项目(Vue)
  19. Visual Studio 2017 下载地址 V15各种版本官方下载网址
  20. [osg]OSG中的颜色数组,法向数组

热门文章

  1. 行为识别(Action Recognition)初探
  2. Java使用spire进行word文档的替换
  3. 【RHCE】DNS域名解析服务器及正反向解析与主从同步简单配置
  4. 安装tensorflow
  5. Stata:固定效应模式必须加入时间固定效应吗?
  6. 外包公司值不值得去?
  7. 兄弟2260激光打印机硒鼓灯常亮
  8. Selenium 手动安装方法
  9. SQL Server 学习笔记——T-SQL
  10. 操作系统---存储管理