七. Python基础(7)--文件的读写

1 ● 文件读取的知识补充

f = open('file', encoding = 'utf-8')

content1 = f.read()

content2 = f.readlines()

content3 =f.readline()

 

# 注意:现在只有content1有内容, 因为f.read()执行完以后, 文件的指针已经位于文件尾.

 

2 ● 如果多次读同一个文本对象

f = open('file', encoding = 'utf-8')

content1 = f.read()

f.seek(0) #光标返回止文件的开头

content2 = f.readlines()

f.seek(0)

content3 =f.readline()

 

3 ● Python函数体的要求

# 函数体不能为空, 至少要有一个pass

 

4 ● writelines()函数

seq = ["菜鸟教程 1\n", "菜鸟教程 2"]

f.writelines( seq )

菜鸟教程 1

菜鸟教程 2

 

5 ● Python文件处理应注意的问题

① Python的读写模式有12种, 一般只用r, w和a三种, 其它的尽量不要使用.

② 读写视频/音频/图片等二进制文件时, 才注意采用包含'b'的读写模式(也不要encoding)

③ 尽量只用r, w, a, rb, wb, ab的读写模式, 尽量不要对一个文件又读又写.

 

6 ● 'r+' 读写模式的特点

# 打开文件的时候:不清空文件

# 当用户执行读操作以后,写的内容都变成追写

# 当用户未执行读操作,写默认从开始覆盖

 

7 ● 修改文件的方法: 复制→修改→删除→改名

f = open('file', encoding = 'utf-8') # with open

f2 = open('file_back', 'w', encoding = 'utf-8')

for line in f:

    line_list = line.split('|')

    line_list[0] += '_somebody'

    user_str = '|'.join(line_list)

    f2.write(user_str)

f.close() #一定要关闭文件!

f2.close()#一定要关闭文件!

import os

os.remove("file")

os.rename("file_bak", "file")

 

补充知识:

1 ● 文件操作作中的tell()和seek()函数

obj = open("test_7.txt", encoding="utf-8", mode = "r+")

print(obj.tell())

obj_text = obj.read(1) # 单位是字符

print(obj.tell())    #返回文件当前指针的位置,单位是字节

print(obj_text)

obj.seek(6) # 定位文件指针的位置, 指针单位是字节, 第如果不填第二个参数, 从文件开头定位指针

obj.write("6")

print(obj.tell())

obj.close()

# seek(offset, whence=SEEK_SET)有2个参数

# offset:偏移量(代表需要移动、偏移的字节数)

# from:方向

# 0:表示文件开头(默认)

# 1:表示当前位置

# 2:表示文件结尾(一般offset是负数)

例如: seek(5,1) #表示从文件当前位置开始移动指针,向右移动5个字节; 如果是"-5"表示向左移动5个字节.

# SEEK_SET 将读写位置指向文件头后再增加offset个位移量。

# (Python3中)在文本文件中,对于没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。

如果一个文件"test_7.txt"原本的内容是:

北京市Beijing

执行上述代码后, 打印:

0

3

7

"test_7.txt"的内容变为:

, 有的编辑器(如pycharm)显示为:

北京6؂Beijing

同时会提示:

如果是mode = "w+"模式:

打印结果是:

0

0

 

7

"test_7.txt"的内容变为:

 

2 ● flush()函数

flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区.

一般的文件流操作都包含缓冲机制,write方法并不直接将数据写入文件,而是先写入内存中特定的缓冲区。


close()方法,原理是内部先调用flush方法来刷新缓冲区,再执行关闭操作,这样即使缓冲区数据未满也能保证数据的完整性。

f= open('flush_test.txt',mode='w',encoding='utf-8')

i = 0

while i < 3:

    data = input('请输入:')

    f.write(data)

    f.flush()

    i += 1

 

obj.close()

结果:

 

3 ● py2中的xreadlines()函数

在Python2中, 文件对象的函数xreadlines()函数返回的是一个生成器, 在Python3中它已不再被使用.

在Python3中, 可以直接使用for line in 文件对象:...来生成一个生成器.

 

 

4 ● 浮点数

小数包括: 有限小数, 无限循环小数, 无限不循环小数

浮点数包括: 有限小数, 无限循环小数(因为Python中采用科学计数法, 所以有"浮点数"的称呼)

 

5 ● 向下取整的原则

print(int(1.5)) # 1, 不是四舍五入的原则

 

6 ● 复数

复数由实数部分和虚数部分构成,real + imag(J/j后缀)

实数部分和虚数部分都是浮点数

>>> a = 1+2j

>>> b= 3+0j

>>> print(a+b)

(4+2j)

七. Python基础(7)--文件的读写的更多相关文章

  1. Python基础 | 数据文件的读写

    目录 txt txt的读入 txt的写出 csv xls\xlsx 在线网页数据 常用的工具 爬虫的步骤 pdf pdfrw PyPDF2 提取文档信息 word文档 其他统计软件生成文件 本文总结使 ...

  2. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  3. 第二篇:python基础之文件读写

    python基础之文件读写   python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使 ...

  4. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  5. python入门基础:文件的读写

    文件的读写操作运用广泛,无论是何种语言都会涉及到文件的输入输出. 下面简单的总结一下文件的读写: 1:open()函数 f = open('workfile', 'w') 函数 open()返回文件的 ...

  6. Python基础笔记2-ruamel.yaml读写yaml文件

    上一篇笔记记录了Python中的pyyaml库对yaml文件进行读写,但了解到ruamel.yaml也能对yaml文件进行读写,于是想尝试一下它的用法. 一,注意 这里首先要更正一下网上大部分博客的说 ...

  7. Python基础_文件的的处理及异常处理

    今天主要讲讲文件读写及异常处理. 一.文件操作 1.1 文件的创建及读 打开文件 open 函数  open(file,[option]) file 是要打开的文件 option是可选择的参数文件的打 ...

  8. python中 对文件的读写操作 以及如何边写入 边保存flush()

    转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...

  9. python基础之文件处理

    读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...

随机推荐

  1. Axure 设置条件的操作

    登录的三种场景: 1.用户名为空,只输入密码时,执行三个动作:跳出提示内容(用户名为空).光标定位在用户名的文本框中.清空密码的文本框: 2.密码为空,只输入用户名,执行两个操作:跳出提示内容(密码为 ...

  2. android 趟坑记

    又是一个伤感的故事,但阿古好像已经习以为常了. 大半年的辛苦又泡汤了,故事是这样. 帝都某高端小区,封闭局域网,做一个可视对讲+门禁的APP,之前那一版因为使用了商业代码,又不想花钱,于是找阿古换一个 ...

  3. idea maven环境下 java实现发送邮件验证

    1.开通smtp授权 QQ邮箱-设置-账户-开启 得到一个授权码 2.下载javax.email包 maven项目中 pom文件加入: <dependency> <groupId&g ...

  4. 详细讲解Linux下安装python3(Python3.5.4)

    https://jingyan.baidu.com/article/6b97984dd6dbb01ca2b0bf0a.html

  5. org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1428942566812653608

    一.异常信息 org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet reque ...

  6. 静默安装/ 普通安装与root权限获取相关

    静默安装 有时候使用第三方的插件时我们需要静默安装其提供的apk包,静默安装时我们需要获取root权限,如下代码 Process process = Runtime.getRuntime().exec ...

  7. JavaScript基础一

    1.1 javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) J ...

  8. 四则运算Java语言实验设计过程1

    题目要求: 像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”.要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性).题目避免重复.可定制出题的数量. 设计思路 ...

  9. (二)使用数组长度实现ADT bag(java)

    目录 1.使用固定大小的数组实现ADT bag 包 1.1 一组核心方法 1.2 实现核心方法   1.3 让实现安全 1.4 测试核心方法 1.5 实现更多的方法 1.6 删除项的方法 1.7 测试 ...

  10. .net 基础

    之前给大家总结了java的面试几次技巧总结,同学们看了觉得还是不错,能够得到大家的认可,感觉还是挺不错的.现在又有同学来想小编索要.NET面试的总结了,好吧.谁让小编这么好呢!以下是.NET面试之框架 ...