[Python 从入门到放弃] 5. 文件与异常(一)
1.文件操作:
文件操作包含读/写
从文件中读取数据
向文件写入数据
Python中内置了open()方法用于文件操作 (更多关于open()BIF介绍 阅读此篇)
基本模板:
1.获取文件对象
2.文件处理:读/写/...
3.关闭文件
# .打开文件
the_file=open('f://test.txt') # f://test.txt 是绝对路径
.open(.为什么要关闭文件: 打开文件之后,会占用文件资源 在不需要使用时,应该及时关闭文件 '''
2.简单的文件读取
在python中基本的输入机制是基于行的:
(1).现在有一个文本文件:
filename:test.txt # 文件名 filePath:f:/test.txt # 路径 fileContent: # 文件内容 Man:Is this the right room for an argument?Other Man:I've told once.Man:No you haven't!Other Man:Yes I have.Man:When?Other Man:Just now.Man:No you didn't......Other Man:Now let's get one thing quite clear:I most definitely told you!Man:Oh no you did't!Other Man:Oh yes I did! '''你可以参照文件信息,在f盘创建一个'''
(2).开始读取:
the_file=open('f://test.txt')
# 为什么路径是f://test.txt 不是f:/test.txt?
# 因为在windows就得使用此等格式 在‘/’前加一个
# 也可以这样写: open(r'f:/test.txt') 加上r的指明读取原始字符串:后面附带的字符串是什么就用什么 不需要转义
print(the_file.readline())
the_file.close()
运行结果:

读取了文件中的第一行
readline()函数:读取一行
现在改变一下代码:
the_file=open('f://test.txt')
print(the_file.readline())
print(the_file.readline()) # 使用了两个相同的语句
the_file.close()
运行结果:

结果不是输出两个相同的文件内容:
得益于文件指针,在读取该行之后,
文件指针会自动指向下一行
使用即使相同的读取语句
指针也会遵循一行行的原则指向
如何人为控制文件指针指向?
比如:当你想两次输出都输出第一行时:
可以参考seek()方法:
the_file=open('f://test.txt')
print(the_file.readline())
the_file.seek(0) # 将文件指针设置在起始位置 也就是往回调
print(the_file.readline())
the_file.close()
执行结果:

(3)输出文本文件中的全部内容
方法一:使用迭代器,逐一输出:
the_file=open('f://test.txt')
for line in the_file:
print(line)
the_file.close()
运行结果:
# 全部输出文件内容 Man:Is this the right room for an argument? Other Man:I've told once. Man:No you haven't! Other Man:Yes I have. Man:When? Other Man:Just now. Man:No you didn't ...... Other Man:Now let's get one thing quite clear:I most definitely told you! Man:Oh no you did't! Other Man:Oh yes I did!
方法二:使用read():
the_file=open('f://test.txt')
print(the_file.read())
the_file.close()
read()能够将文本文件内容作为一个大字符串返回
执行结果:
Man:Is this the right room for an argument? Other Man:I've told once. Man:No you haven't! Other Man:Yes I have. Man:When? Other Man:Just now. Man:No you didn't ...... Other Man:Now let's get one thing quite clear:I most definitely told you! Man:Oh no you did't! Other Man:Oh yes I did!
当需要逐行处理时,使用方法一迭代的方法
当直接输出而不需要做其它时,使用read()方法
(4)readlines():
readline()方法是逐行读取,并返回所读取的字符串
readlines()方法是读取多行,并返回一个列表
测试一下:
the_file=open('f://test.txt')
print(the_file.readlines())
the_file.close()
执行结果:
['Man:Is this the right room for an argument?\n', "Other Man:I've told once.\n", "Man:No you haven't!\n", 'Other Man:Yes I have.\n', 'Man:When?\n', 'Other Man:Just now.\n', "Man:No you didn't\n", '......\n', "Other Man:Now let's get one thing quite clear:I most definitely told you!\n", "Man:Oh no you did't!\n", 'Other Man:Oh yes I did!']
每一行都作为列表的数据项
并包含换行符’\n‘
[Python 从入门到放弃] 5. 文件与异常(一)的更多相关文章
- [Python 从入门到放弃] 6. 文件与异常(二)
本章所用test.txt文件可以在( [Python 从入门到放弃] 6. 文件与异常(一))找到并自行创建 现在有个需求,对test.txt中的文本内容进行修改: (1)将期间的‘:’改为‘ sai ...
- python入门学习:9.文件和异常
python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件 首先创建一个pi_ ...
- [Python 从入门到放弃] 1. 列表的基本操作
''' 列表 Create By 阅后即焚 On 2018.1.29 ''' 1. 列表的定义 列表看起来好像其它编程语言中的数组,但列表具备更加强大的功能,它是Python完备的集合对象,现在,你可 ...
- Python从入门到放弃系列(Django/Flask/爬虫)
第一篇 Django从入门到放弃 第二篇 Flask 第二篇 爬虫
- python全栈开发从入门到放弃之文件处理
一.文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 事例文件内容 [一棵开花的树] 如何让你遇见我 在我最美丽的时刻 为这 我已在佛前求了五百年 求 ...
- Python从入门到放弃
计算机基础 01 计算机基础之编程 02 计算机组成原理 03 计算机操作系统 04 编程语言分类 Python解释器 05 Python和Python解释器 06 执行Python程序的两种方式 0 ...
- [Python 从入门到放弃] 3. BIF(内建函数)
BIF (built-in functions) Python中提供了70多个内建函数,具备大量的现成功能. BIF不需要专门导入,可以直接使用,拿来就用 1.print() # 在屏幕上打印输出 如 ...
- python从入门到放弃之进程
在理解进程之前我们先了解一下什么是进程的概念吧 以下就是我总结的一些基本的进程概念 进程就是正在运行的程序,它是操作系统中,资源分配的最小单位(通俗易懂点也就是电脑给程序分配的一定内存操作空间).资源 ...
- python从入门到放弃之Tensorflow(一)
Tensorflow使用错误集锦: 错误1 : FutureWarning: Conversion of the second argument of issubdtype from ‘float’ ...
随机推荐
- 【转】Javascript基本类型和引用类型的区别
根据[转贴]进一步补充 今天明白了一个困扰很久的问题:引用类型和基本类型的区别与联系要明白这个问题,首先需要理解堆栈的概念.那什么又是堆栈,有什么区别和联系呢?堆:首先堆是动态分配的,JVM并不会自动 ...
- 浮点型转整数型进行计算 - 移动GIS设备硬件的原因
在ArcGIS9.1之前桌面版ArcGIS都是采用整数存储的,是为了效率,将浮点型转为整数型存储,但9.2之后随着硬件的提升,浮点型的效率已经得到提高了,所以不再转换.但移动GIS设备还是要转整数型. ...
- noip第23课作业
1. 营救 铁塔尼号遇险了!他发出了求救信号.距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里. 通过侦测,哥伦比亚号获取了一张海洋图.这张图将海洋部分分化成n*n个比较小的单位,其 ...
- Hdu 1009 FatMouse' Trade 2016-05-05 23:02 86人阅读 评论(0) 收藏
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- Python学习--和 Oracle 交互(2)
当在 mac 电脑上用 Python 读取 oracle 数据库中的中文时,有可能返回数据为“?” 解决方案: 在数据库操作的函数前添加以下代码, import sysreload(sys)sys.s ...
- NET npoi帮助类
nuget添加npoi /// <summary> /// npoi帮助类 /// </summary> public static class NpoiHelper { // ...
- sql server 查看列备注、类型、字段大小
select 列名 = a.name ,类型 = c.name ,长度 = columnproperty(a.id,a.name,'precision') ,备注 = g.value from sys ...
- MVVM Light 新手入门(1):准备阶段
1.新建WPF空白项目. 2.NuGet 程序包中安装 3.根据MVVM分层结构,建立包含Model.View.ViewModel三层文件夹 如图: 1.View负责前端展示,与ViewModel进行 ...
- WPF Slider滑动条的颜色修改
效果如下: 鄙人虽然开发WPF有些时间,但之前一直是一些简单Template和Style改改之类的工作,并没有深入研究过.此次为了完成工作,首先也是网上搜了半天,没有找到合适的代码直接拷贝(搜索能力待 ...
- 1.翻译:EF基础系列--什么是Entity Framework?
大家好,好久不见,EF系列之前落下了,还是打算重新整理一下. 先说说目前的打算:先简单了解一下EF基础系列-->然后就是EF 6 Code-First系列-->接着就是EF 6 DB-Fi ...