文件处理流程

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

打开文件的模式有三种:

  • 只读模式(默认)
  • 只写模式(不可读,不存在则创建,存在则覆盖)
  • 追加模式(可读,不存在则创建,存在则只追加内容)
"+"表示可同时读写某个文件:
1. r+可读写文件(可读,可写,可追加)
2. w+写读
3. a+追加 "U"表示在读取时,可以将\r \n \r\n自动转换成\n(与r或者r+模式同时使用)
因为Windows系统的换行符为\r\n,Linux系统的换行符为\n,加上U则能自动把\r\n转换成\n
1. rU
2. r+U "b"表示处理二进制文件
1.rb
2.wb
3.ab

文件操作基本用法

基本用法:open()

file_object = open(file_name, access_mode = ‘r’, buffering = -1)

        open函数有很多的参数,常用的是file_name,mode和encoding
        file_name:打开的文件名,若非当前路径,需指出具体路径
        access_mode文件打开模式
        buffering的可取值有0,1,>1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小; 
        encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;

 

#打开文件open()
f = open('test.txt','r+')
#或者with open() 这种方法操作完成后,会自动关闭不需要close()
with open('test.txt','r') as f:
f.read() #关闭文件
f = open('test.txt','r+',encoding='utf-8')
ret = f.read()
print(ret)
f.close() #读取文件内容(可指定每次读取字字符)
f = open('test.txt','r+',encoding='utf-8')
ret = f.read(8)
print(ret) #读取数据(可指定读取字符数),存为list显示
f = open('test.txt','r+',encoding='utf-8')
ret = f.readlines()
print(ret)
f.close() #读取一行数据
f = open('test.txt','r+',encoding='utf-8')
ret = f.readline()
print(ret)
f.close() #写入文件write()参数是字符串
f = open('test.txt','a+',encoding='utf-8')
f.write("abc")
ret = f.read()
print(ret)
f.close() #写入文件,writelines()参数是序列,比如列表,它会迭代帮你写入文件
f = open('test.txt','a+',encoding='utf-8')
f.writelines(["aa","bb","cc"])
ret = f.read()
print(ret)
f.close() #判断文件是否是统一tty设备
f = open('test.txt','r+',encoding='utf-8')
ret = f.isatty()
print(ret) #False
f.close() #判断是否可读(不可读则报错" No such file or directory: ")
f = open('test.txt','r+',encoding='utf-8')
ret = f.readable()
print(ret) #True
f.close() #指定文件中指针的位置
f = open('test.txt','r+',encoding='utf-8')
ret = f.read(8) #先读取8个字符
print(ret)
f.seek(0) #然后把指针移动到文件开头处
ret = f.read(8) #在重新读取
print(ret)
f.close() #获取指针位置
f = open('test.txt','r+',encoding='utf-8')
ret = f.read(8) #先读取8个字符
print("pointer position:%s"%f.tell()) #查看当前指针位置
print(ret)
f.seek(0) #重置指定到启始位
print("pointer position:%s"%f.tell()) #在查看指针位置
f.close() #截断文件数据,仅保留指定之前数据(指定字节数)
f = open('test.txt','r+',encoding='utf-8')
f.truncate(8) #文件只保留前8个字节数据,文件后面数据的全部删除
ret = f.read()
print(ret)
f.close() #文件描述符
f.fileno() #刷新文件内部缓冲区
f.flush()

  

 

(二十三)Python 3 文件操作的更多相关文章

  1. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  2. python学习 文件操作

    一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...

  3. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  4. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  5. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  6. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  7. 二十三. Python基础(23)--经典类和新式类

    二十三. Python基础(23)--经典类和新式类 ●知识框架   ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object):    ...

  8. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  9. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

随机推荐

  1. 黑客攻防技术宝典web实战篇:攻击应用程序逻辑习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 何为强制浏览?可以通过它确定哪些漏洞? 强制浏览包括避开浏览器导航对应用程序功能访问顺序实 ...

  2. Stars in Your Window POJ - 2482

    错误记录: 题目说输入在int范围内,但是运算过程中可能超int:后来开了很多longlong就过了 #include<cstdio> #include<algorithm> ...

  3. req.getParameter()无法获取参数(附前端json序列化)

    问题:前端用Ajax的post方式想servlet传递参数,servlet的getParameter()方法无法获取参数. 前端代码: $.ajax({ url: '/TestWeb/addBook' ...

  4. 139 Word Break 单词拆分

    给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,确定 s 是否可以被空格分割为一个或多个在字典里出现的单词.你可以假设字典中无重复的单词.例如,给出s = "leet ...

  5. css实现行内文字垂直居中

    之前本人一直使用浮动.相对定位.绝对定位和display:table等css的方法进行定位.网上得知flex可实现弹性布局,符合未来发展趋势,随尝试. 1:让盒子行内文字垂直居中,解决思路是讲文字的行 ...

  6. 批量部署Hadoop集群环境(1)

    批量部署Hadoop集群环境(1) 1. 项目简介: 前言:云火的一塌糊涂,加上自大二就跟随一位教授做大数据项目,所以很早就产生了兴趣,随着知识的积累,虚拟机已经不能满足了,这次在服务器上以生产环境来 ...

  7. 在WIN7下解决coursera视频无法播放问题

    https://blog.csdn.net/u012509485/article/details/78459584在WIN7下解决coursera视频无法播放问题2019/1/20 23:18 最近C ...

  8. coursera网站中的VTT字幕的使用

    coursera网站中的VTT字幕的使用 1.https://www.coursera.org/learn/os-virtsecurity/lecture/xuWgP/1-3-cao-zuo-xi-t ...

  9. Linux 使用常见问题

    1. 如何查看软件安装到什么位置 [Ubuntu] 今天安装了Lxc-docker,想看一下文件都安装到哪里了,首先找到这个包的ersion zhouh1@uhome:~$ dpkg -s lxc-d ...

  10. Angular JS中变量定义的基本原则

    在Angular JS开发中,经常需要定义一些变量,关于这些变量的定义方法及作用域应该注意以下几点: 1. 如果能用局部变量解决问题,尽量不要用全局变量. 2. 需要与界面双向绑定的变量采用$scop ...