Python零基础入门(12)-------文件读写

数据类型:指向一个特定的文件 。不管是文本或者文档。或者其他媒体文件。

声明方式: open(‘路径‘ , ‘模式‘ , encoding = ‘编码‘);

(1)路径 例如:‘C:\\Data\\temp.txt’  斜杠需要转义,所以要写2个斜杠。 加 r 忽略转义  r‘C:\Data\temp.txt‘

(2)模式

区分下文件的形式有2种

【1】 文本

模式有

r  读  read      读取文本

w 写   write      写入文本 ,写模式会将内容替换掉

rw 读写

a   追加  append   向文本中追加内容

【2】二进制(也称之为流)

b

(3)encoding 编码   编码有 ACSII  UTF8   GBK  GB2312  .......还有很多

操作:

(1)我们在D盘的data文件夹下建立一个 temp.txt  在里面写入 欢迎使用Python

(2)接下来我们将文件读取输出到控制台上

我们通过 f.read() 方法将 temp.txt 文本文件的内容读取出来 (但是但是我们文本的换行却使用转义字符 \n 显示了出来)

(3)接下来使用 print() 方法将将 f.read() 的内容输出

发现没有输出任何内容,这个是为什么呢?

原因是应为我们的  read() 函数的机制有一个指针,在读取的时候移动指针,当read结束的时候指针已经移动到了结尾。所以。当我们调用 read() 函数的时候,指针继续移动,却读不到任何内容,所以打印出空的

解决方法:

【1】重新创建文件的实例   这种比较麻烦

【2】 seek(0) 将指针重新移动到开头

(4) 读取完,我们不需要在继续操作了,可以调用 close() 方法关闭

(5) read(num)  指定读取数量   【注:read() 不指定读取数量则一次性读取所有信息,假设文件很大,那么读取效率问题】

可以看到指定参数读取多少个字符

(6) readlines()  读取行,返回一个数组

(7) readline()   读取一行 ,调用一次,读取一行。

循环输出 :为什么会看到隔一行呢? 因为print() 函数本身带一个 \n 换行。 可以指定print() 函数的第二个参数 end,结束符号

(8) 关于编码的问题

先将我们的  D:\data\temp.txt 另存一下,编码选UTF-8 。然后我们接着读取

发现读取的时候抛出了一个异常。

这个时候就使用 encoding 参数,读取就正常了

我们新建一个 write.txt 文件进行写入操作 (不创建也可以,你open的时候也会帮你创建)

(9) write(str)  写入,返回写入字符的长度

打开文本却发现什么都没有。

我们write(str) 只是将文本写入到内存中。但是还没有保存,如果想保存,我们可以调用 flush() 或者你已经操作完了可以调用close()

flush() 方法将内存的操作进行映射到文本文件上 (不关闭文件情况下,输出缓存到硬盘上)

(10) writelines(list) 写入多个

产生文件并写入内容

我们往 temp.txt 中追加内容

附录

关于路径:

当我们省略掉盘符的时候,他是从系统的环境变量中找到Python的安装目录找文件的

引用 os 使用 os.getcwd() 方法可以获取我们Python的安装目录

os.chdir(path) 指定操作目录

关于 f.close() 即使我们不手动close() 内存到一定程度也会自动回收。不close()是一个不好的编程习惯

当然 Python 提供了一种了一种上下文的语法  代码段执行完成之后会自动调用回收 (应用场景,文件读写,数据库读写)

with 后面就是上下文的语法

原文地址:https://www.cnblogs.com/Hong-Bin/p/8531397.html

时间: 2024-10-13 18:26:01

Python零基础入门(12)-------文件读写的相关文章

大牛整理最全Python零基础入门学习资料

大牛整理最全Python零基础入门学习资料 0 发布时间:『 2017-11-12 11:56 』     帖子类别:『人工智能』  阅读次数:3504 (本文『大牛整理最全Python零基础入门学习资料』的责任编辑:老王) 摘要:大牛整理最全Python零基础入门学习资料 Python数据类型--数字 Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. var1 = 1 var2 = 10 您也可以使

老少皆宜的密大Python零基础入门

Who are we? MTech是一个由密歇根大学 工程院中 (AE/ME)的中国学生组成的的一个专注于专业知识和技能的分享和交流的俱乐部.我们创建这个俱乐部旨在促进工程专业中国学生之间技术层面的交流,搭建桥梁促进知识的分享和传播.请关注我们的微信公众号("密大MTech")和我们的网站(mtechmae.webstarts.com)了解关于我们的更多信息. What is Python? Python是一种面向对象.直译式的编程语言.它的语法简单,并包含了功能完备的库,适合解决很多

Python零基础入门(10)------- str 字符串

编程中使用频率非常高的数据类型 "str 字符串" ,字符串属于不可变序列. Python中声明字符串 使用 '单引号' 或者 "双引号" 都是可以的 . 字符串的引号前后匹配的 下面是实现多行字符串: 三个引号 """这里放放着多行文本""" 直接输出看到的 \n 代表着换行符,  这种斜杠后跟着某个字符串的字符称之为转义字符 [转义字符个人理解:表示那些在电脑上不可显示的特殊字符] print() 打印

Python零基础入门(4)-------简单了解Python是怎么运行

1.编码 即是编写代码 2.将我们写好的源代码编译成字节码(后缀名是 pyc的文件) [导致重新编译的原因:源代码改变,版本不一致.] 3.载入到PVM(Python Virtual Machine)运行 以上都是由Python解释器完成的 看起来方式跟JAVA虚拟机   .NET framework  很是相似 原文地址:https://www.cnblogs.com/Hong-Bin/p/8343726.html

Python零基础入门(1)-------计算机基础

计算机(电脑)的概念:是存储和计算处理的电子设备 一.硬件组成(通俗的讲就是看得见摸得着的实体) 1. CPU(中央处理器) :相当于计算机的大脑,计算任务都是由CPU完成的.CPU的计算能力是由主频决定的,主频越高,计算能力也就越好. 2. 内存:保存在内存的数据是临时的.内存中的数据是程序运行过程中,临时存放数据的一个场所. (内存中的数据不是永久的,例如你写一个文本[还没有保存],电脑突然断电,那么这一段文本就不见了.或者玩游戏过程中没有存档).内存的大小还决定着程序的运行快慢. 3. 硬

Python零基础入门(11)-------dict 字典表

dict 字典表属于映射的数据类型 特性:通过键(key),而不是通过下标访问数据 包含任意对象的无序集合 可变长度,可任意嵌套 属于"可变映射" 分类 对象引用表(Hash Table) 声明:   d = { } 是一个空的字典表.字典表是一个 {key: value} 的形式.key 只能是不可变的元素(可变类型List就不可以). 从下面图片你也可以看出 dict 字典表 是一个无序的集合.是通过内部Hash算法排序的 key 只能是不可变类型的数据.可变类型就会抛出错误信息

Python零基础入门(7)-------list 列表

list 列表属于可变列表 (1)可以包含任意对象有序集合,[如下图,任意数据类型,顺序跟我们存进入的一样] (2) 通过下表索引访问,如下图所示甚至可以使用负数进行访问,-1是最后一个元素 下图访问范围: 从索引0到索引2.后面索引是不包含2的,请注意下 (3)可变长度.append方法进行追加 (4)任意嵌套 (5)支持原位改变, 可以看到从 25 变成 26 在内存中.Person变量是指向一块引用,然后引用在指向具体的值. 当 person[1]  = 26; 那么内存的引用将重新指向一

Python零基础入门(9)-------range的范围

用于生成一个数值类型的序列, range 也是一个不可变类型.不支持原位改变 指定范围内的range 访问方式跟list 一样 t in  range1 某元素在range里面 t not in range1    某元素不在range里面 range[index] len(range1)   range长度 min(range1)  最小值 max(range1)   最大值 sum(range1)    总和 range1.index(x)  某个元素第一次出现的range下标 range1

鱼C《零基础入门学习Python》10-17节课时知识点总结

第10讲:列表:一个打了激素的数组 1. 列表都可以存放一些什么东西?  我们说 Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型. 2. 向列表增加元素有哪些方法?  三种方法想列表增加元素,分别是:append().extend() 和 insert().    3. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?  append() 方法是将