文件读写
"""
一、文件打开有3种方式
1、读 r #如果打开的文件的时候没有指定模式,那么默认是读
读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错
2、写 w #w模式会清空原有文件内容
写读模式 w+
只要沾上w,他就会把文件内容清空
3、追加 a
追加读写
二、文件指针
f.seek(0)#seek移动指针的时候,只对读好使,对写不好使
当open时文件指针是在初始位置1,当读取4个字节内容是文件指针位置就在4,再write时,文件指针从4移到8,所以,只要控制了文件指针,就能重复的读取了!
操作文件指针可以通过seek方法:
seek(offset, whence):移动文件指针
offset:偏移量,可为负数
whence:偏移相对位置

偏移相对位置为os模块当中的SEEK_SET、SEEK_CUR、SEEK_END:
   os.SEEK_SET:表示文件的相对起始位置
os.SEEK_CUR:表示文件的相对当前位置
os.SEEK_END:表示文件的相对结束位置
三、python2\3的区别
file() #python2里面打开文件还可以用file()
open() #python3
"""

f = open('ybq.txt','a+',encoding='utf-8')
f.seek(0)#seek移动指针的时候,只对读好使,对写不好使
print(f.tell())#查看当前文件指针的位置
f.truncate()#清空文件内容
print(f.read())#读取文件里面的全部内容
print(f.readline())#只读取一行的内容
print(f.readlines())#读取文件里面所有的内容,把文件里面每一行的内容放到一个list里面
f.write('mpp'+'\n') #写入字符串
print(f.read()) names = ['ybq','mpp','tlx','ply','yjy']
f.writelines(names)
st = 'ybq,mpp,tlx'
f.writelines(st)
f.write(st) #只可写入不可迭代的对象,如字符串
tu=('sdf','sdfs','sdfsd')
f.writelines(tu)
d={'name':'xx'}
f.writelines(d) #写的时候,传入一个可迭代的对象,如列表、元祖、字典
f.close() #打开文件,通过循环向文件中写入数据
f = open('a.txt', 'w')
for i in range(3):
f.write('xx'+'\n')
f.close() #高效处理文件的方法
fw = open('ybq.txt',encoding='utf-8')
count = 1
#直接循环文件对象的话,就是循环文件里面的每一行 for f in fw:
f = f.strip() #去掉空、换行符
stu_lst = f.split(',') #按‘,’分割成列表
print(stu_lst)

文件指针
实验文件data.txt如下:
This file is data.txt
hello world!
My name is mark.

文件指针初始化

f = open('data.txt','r+')
print f.tell() #
f.write('nice to meet you')
f.flush() #flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
print f.tell()
print f.read()
f.close()

相应输出:
//print f.tell()
0
//print f.tell()
16
//print f.read()
a.txt
hello world!
My name is mark.

说明:以’r+‘模式打开文件,文件指针所指位置为0
f.write(‘nice to meet you’)会覆盖原文件内容,文件指针随着移动
print f.read()只会输出剩余内容

f = open(r'test2.txt','a+')
print f.tell()
f.write('nice to meet you')
f.flush()
print f.tell()
print f.read()
f.close()

相应输出:
//print f.tell()
52
//print f.tell()
68
//print f.read()

说明:以’a+’模式打开,文件指针所指位置为文件尾,此例为52
f.write(‘nice to meet you’)会在原文件内容尾添加,文件指针随着移动至68
因为随着write()函数,文件指针已经移到文件末尾,所以print f.read()没有输出

python学习笔记(四)-文件操作的更多相关文章

  1. python学习笔记:文件操作和集合

    一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...

  2. python学习笔记之文件操作(三)

    这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...

  3. python学习笔记4(文件操作)

    文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...

  4. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  5. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  6. Python学习笔记 - day5 - 文件操作

    Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...

  7. python学习笔记(六)---文件操作与异常处理机制

    文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...

  8. 我的Python学习笔记之文件操作

    一,Python的文件类型有两种 1.文本文件 2.二进制文件 文件的操作: 1.打开文件,获取文件的控制权 2.读写文件 3.关闭文件,释放文件的控制权,如果不释放控制权,那么其他程序就不能访问此文 ...

  9. python学习笔记(五)-文件操作2

    一.文件修改 现有文件file.txt,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...

随机推荐

  1. 简略图解:输入 url 到出现页面,浏览器做了什么?

    应该有很多前端开发人员都思考过这么一个问题:从输入 URL 到页面加载完成,中间都做发生了什么? 这个问题涉及的面非常广,每个涉及的点又很深入.从触屏/键盘如何到 CPU?CPU 如何到系统内核?如何 ...

  2. NOIP 模拟 $12\; \text{简单的玄学}$

    题解 有些难度 对于 \(30pts\) 直接暴力 对于 \(70pts\) 发现规律 \(2^n-a\) 与 \(a\;\;(a\in [1,2^n))\) 分解质因数后,\(2\) 的次数相同 \ ...

  3. QT从入门到入土(九)——TCP/IP网络通信(以及文件传输)

    引言 TCP/IP通信(即SOCKET通信)是通过网线将服务器Server端和客户机Client端进行连接,在遵循ISO/OSI模型的四层层级构架的基础上通过TCP/IP协议建立的通讯.控制器可以设置 ...

  4. 技术调研,IDEA 插件怎么开发「脚手架、低代码可视化编排、接口生成测试」?

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 不踩些坑,根本不是成熟的码农! 你觉得肯德基全家桶是什么?一家人一起吃的桶吗,就那么 ...

  5. spring-data-redis 动态切换数据源

    最近遇到了一个麻烦的需求,我们需要一个微服务应用同时访问两个不同的 Redis 集群.一般我们不会这么使用 Redis,但是这两个 Redis 本来是不同业务集群,现在需要一个微服务同时访问. 其实我 ...

  6. IDEA中的Git操作,看这一篇就够了!

    大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. 环境准备 使用前需要安装一个远 ...

  7. C# - 音乐小闹钟_BetaV3.0

    时间:2017-11-22 作者:byzqy 介绍: 音乐小闹钟 BetaV3.0 新鲜出炉了,快来围观吧!上效果图: 是不是觉得顿时变得高大上了许多呢?^_^ 工具/原料: (操作系统:Window ...

  8. 使用selenium模拟登录12306网站

    1 import yh 2 from selenium import webdriver 3 from PIL import Image 4 # from selenium.webdriver imp ...

  9. noip模拟38

    \(\color{white}{\mathbb{深秋总有廖落处,雁归每是菊败时,名之以:残菊}}\) 这场比赛几乎全场都在打暴力,几乎人均切掉的 \(t1\) 没有想到双指针,\(t3\) 的暴力也没 ...

  10. Python - 面向对象编程 - 三大特性之多态

    前置知识 封装 详解文章:https://www.cnblogs.com/poloyy/p/15203989.html 封装根据职责将属性.方法封装到一个抽象的类中 定义类的准则-封装 继承 详解文章 ...