python基础-文件操作

 

一、文件操作

对文件操作的流程

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄对文件进行操作
  3. 关闭文件

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

打开文件的模式有:

  • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
  • w,只写模式【不可读;不存在则创建;存在则清空内容】
  • x, 只写模式【不可读;不存在则创建,存在则报错】
  • a, 追加模式【可读;   不存在则创建;存在则只追加内容】

"+" 表示可以同时读写某个文件

  • r+, 读写【可读,可写】
  • w+,写读【可读,可写】
  • x+ ,写读【可读,可写】
  • a+, 写读【可读,可写】

 "b"表示以字节的方式操作

  • rb  或 r+b
  • wb 或 w+b
  • xb 或 w+b
  • ab 或 a+b

 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

 

(1)读文件示例:

r:先建一个文件,命名为test1,写入内容为hello world,开始读取文件

a=open ("test1")
b=a.read()
print(b)
a.close()

读取的结果是:

hello world

(2)写文件示例:“w”和“x”

1、w:先建一个文件,命名为test2,写入内容为welcome to beijing,开始写入内容i have a dream

a=open ("test2",mode="w",encoding="utf-8")
b=a.write("i have a dream")
print (b)
a.close()

写入的结果是:(将之前的welcome to beijing给覆盖掉了,所以w写的权限的话,是覆盖之前的内容)

i have a dream

2、x:创建了一个空的文件test3,并往里面写入内容为hello world

a=open ("test3",mode="x")
b=a.write("hello world")
print (b)
a.close()

 写入的结果是:(如果文件存在的话,则会报错,“x”是需要自己创建新的文件) 

hello world

(3)追加文件示例:

a:先建一个文件,命名为test2,写入内容为i have a dream,追加新内容hello xuyaunyaun

a=open ("test2",mode="a",encoding="utf-8")
b=a.write("\nhello xuyuanyuan")
print (b)
a.close()  

写入的结果是在后面追加了

i have a dream
hello xuyuanyuan

总结:打开文件的模式有:

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

  

关于可读可写模式:

(1)r+:新建一个文件test1,写入内容hello,再次写入内容hello xuyuanyuan

a=open ("test1",mode="r+",encoding="utf-8")
print(a.read())
b=a.write("\nhello xuyuanyuan")
print (b)
a.close()

 写入的结果是在hello后面追加了

hello
hello xuyuanyuan

(2)w+:新建一个文件test3,写入内容test3,再次写入内容goodgirl

a=open ("test3",mode="w+",encoding="utf-8")
print(a.read())
b=a.write("goodgirl")
a.seek(0)
print (a.read())
a.close()

 写入的结果是:(现将之前的test3删除了,再写入了内容goodgirl)注意:read内容是,由于光标此时在内容最后面,没有内容可读,所以需要a.seek(0)将光标移动至最开始的位置,即可read出内容

goodgirl

(3)a+:新建一个文件test4,写入内容xuyuanyuan,再次写入内容hello world 

a=open ("test4",mode="a+",encoding="utf-8")
b=a.write("\nhelloworld")
a.seek(0)
print(a.read())
a.close()

 写入的结果是:(在后面追加写入了内容hello world),注意:read内容是,由于光标此时在内容最后面,没有内容可读,所以需要a.seek(0)将光标移动至最开始的位置,即可read出内容

xuyaunyuan
helloworld

总结:

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

关于 "b"表示以字节的方式操作:

(1)rb(读权限,以字节的方式):新建一个文件test1,写入内容hello xuyuanyuan

a=open ("test1",mode="rb")
print(a.read())
a.close()

 打印的结果是:

b'hello xuyuanyuan'

 

(2)wb+(读写权限,以字节的方式):新建一个文件test2,写入内容welcome to beijing

a=open ("test2",mode="wb+")
b=a.write(b"welcome to beijing")
a.seek(0)
print(a.read())
a.close()

 打印的结果是:

b'welcome to beijing'

(3)ab+(读写权限,追加,以字节的方式):新建一个文件test2,写入内容welcome to beijing,再追加内容welcome xuyuanyuan

a=open ("test2",mode="ab+")
b=a.write(b"\nwelcome xuyuanyuan")
a.seek(0)
print(a.read())
a.close()

 打印的结果是:  

b'welcome to beijing\nwelcome xuyuanyuan'

总结: 

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab

 

 

 python文件操作 seek(),tell()

seek():移动文件读取指针到指定位置

tell():返回文件读取指针的位置

 

 

 

 

python 文件操作 r w a的更多相关文章

  1. python文件操作r+,w+,a+,rb+,

    w:以写方式打开, a:以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+:以读写模式打开 w+:以读写模式打开 (参见 w ) a+:以读写模式打开 (参见 a ) rb:以二进制读模式 ...

  2. 008PHP文件处理——文件操作r w (用的比较多) a x(用的比较少) 模式 rewind 指针归位:

    <?php /** *文件操作r w (用的比较多) a x(用的比较少) 模式 rewind 指针归位: */ /*$a=fopen('a.txt','r'); echo fread($a,f ...

  3. python对文件操作 r w a 文件复制/修改

    文件操作简介: 使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后 通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作 ...

  4. 第九天- 文件操作 r w a 文件复制/修改

    文件操作简介:使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作也会 ...

  5. python文件操作-r、w、a、r+、w+、a+和b模式

    对文件操作的基本步骤 f=open('a.txt','r',encoding='utf-8') data=f.read() print(data) f.close() 文件的打开和关闭使用open() ...

  6. 文件操作 - 三元运算/chardet/文件操作r w/文件的操作方法

    Alex:读书可以改变一个人的气质读书:豆瓣: 1年读20本 你的问题:想法太多,读书太少 书:追风筝的人,白鹿原  电影:阿甘正传 辛德勒名单---------------------------- ...

  7. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  8. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  9. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

随机推荐

  1. log报错: Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.

    报错: 解决方式: 1.登录数据库查看错误原因 结果发现账号无法正常登录出现账号被锁定的错误. 2.如何账号解锁? 用sys系统管理员账号登录数据库 SQL> alter user 用户名 ac ...

  2. 关于python的闭包与装饰器的实验

    首先看闭包,在嵌套函数内添加返回值,可以通过外部函数读取内部函数信息 #encoding=utf-8 #闭包应用 #先定义闭包函数,并使用 def outer(func): def inner(): ...

  3. 12-Mysql数据库----多表查询

    本节重点: 多表连接查询 符合条件连接查询 子查询 准备工作:准备两张表,部门表(department).员工表(employee) create table department( id int, ...

  4. 腾讯云,搭建 FTP 文件服务

    腾讯云,搭建 FTP 文件服务 腾讯云,搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 yum 安装 vsftpd: yum insta ...

  5. AndroidStudio0.5.5发布

    Google%E5%9C%A8%E5%BC%80%E6%BA%90%E4%B8%8A%E7%9A%84%E8%B4%A1%E7%8C%AE http://music.baidu.com/songlis ...

  6. BZOJ 3569 DZY Loves Chinese II 树上差分+线性基

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3569 Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅 ...

  7. ng2模板语法/内置指令速查表

    https://www.angular.cn/docs/ts/latest/guide/cheatsheet.html

  8. 【iOS开发】iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用

    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 110, 150)]; label.backgroundColor ...

  9. IP数据报格式 及分组转发算法

    ip数据报分首部和数据两部分组成: 首部分为固定部分和可变部分 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 首部长度——占 4 位,可表示的最大数值 是 ...

  10. Xampp+Openfire+Spark的简单使用

    Openfire与Spark的简单实用 1.安装Openfire 百度云 提取码:uu11 2.查找路径 /usr/local/openfire 这时候需要将openfire的文件属性都设置为 可读可 ...