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. 文件与异常(一)的更多相关文章

  1. [Python 从入门到放弃] 6. 文件与异常(二)

    本章所用test.txt文件可以在( [Python 从入门到放弃] 6. 文件与异常(一))找到并自行创建 现在有个需求,对test.txt中的文本内容进行修改: (1)将期间的‘:’改为‘ sai ...

  2. python入门学习:9.文件和异常

    python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件  首先创建一个pi_ ...

  3. [Python 从入门到放弃] 1. 列表的基本操作

    ''' 列表 Create By 阅后即焚 On 2018.1.29 ''' 1. 列表的定义 列表看起来好像其它编程语言中的数组,但列表具备更加强大的功能,它是Python完备的集合对象,现在,你可 ...

  4. Python从入门到放弃系列(Django/Flask/爬虫)

    第一篇 Django从入门到放弃 第二篇 Flask 第二篇 爬虫

  5. python全栈开发从入门到放弃之文件处理

    一.文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 事例文件内容 [一棵开花的树] 如何让你遇见我 在我最美丽的时刻 为这 我已在佛前求了五百年 求 ...

  6. Python从入门到放弃

    计算机基础 01 计算机基础之编程 02 计算机组成原理 03 计算机操作系统 04 编程语言分类 Python解释器 05 Python和Python解释器 06 执行Python程序的两种方式 0 ...

  7. [Python 从入门到放弃] 3. BIF(内建函数)

    BIF (built-in functions) Python中提供了70多个内建函数,具备大量的现成功能. BIF不需要专门导入,可以直接使用,拿来就用 1.print() # 在屏幕上打印输出 如 ...

  8. python从入门到放弃之进程

    在理解进程之前我们先了解一下什么是进程的概念吧 以下就是我总结的一些基本的进程概念 进程就是正在运行的程序,它是操作系统中,资源分配的最小单位(通俗易懂点也就是电脑给程序分配的一定内存操作空间).资源 ...

  9. python从入门到放弃之Tensorflow(一)

    Tensorflow使用错误集锦: 错误1 : FutureWarning: Conversion of the second argument of issubdtype from ‘float’ ...

随机推荐

  1. CreateEvent( )——创建事件函数

    /*************************************************************************************************** ...

  2. (转)mysql command line client打不开(闪一下消失)的解决办法

    转自:http://www.2cto.com/database/201209/153858.html 网上搜索到的解决办法: 1.找到mysql安装目录下的bin目录路径. 2.打开cmd,进入到bi ...

  3. Scala深入浅出实战经典:29,Case class和Case object代码实战解析

    今天学习了王家林老师scala讲座的第29讲,case class和case object的应用实战.做下记录. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号,获取更多关于 ...

  4. HDU3572构造图的模型

    第一次面对建模的图,也映照了我以前想的算法不是重点,问题的转化才是重点 Description: N个任务,M台机器,对于每一个任务有p,s,e表示该任务要做p个时长,要从[s,……)开始,从(……e ...

  5. linux中的amount的解释

    挂载(amount)概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载 ...

  6. Android-Java-synchronized同步代码块的使用场景

    synchronized同步代码块的使用场景 (满足以下两种条件,就要考虑使用synchronize同步代码块了) 1.被synchronized同步代码块{同步的代码},是被多次异步调用,什么叫多次 ...

  7. UITableView横向滚动

    UITableView 设置 CGRect tableViewRect = CGRectMake(0.0, 0.0, 50.0, 320.0); self.tableView = [[UITableV ...

  8. CentOS 7.0 Firewall防火墙配置

    启动停止 获取firewall状态 systemctl status firewalld.service firewall-cmd --state 开启停止防火墙 开机启动:systemctl ena ...

  9. 【转】Windows Server 2016 安装 IIS 服务时提示指定备用源路径

    原文地址:http://www.codingwhy.com/view/973.html 在Windows Serever 2016中安装IIS的时候,遇到以下提示 是否需要指定备用源路径?一个或多个安 ...

  10. ionic 2.x 3.x 打包 压缩

    大家都知道Ionic项目ionic serve生成的js css 非常庞大,小有1m多,大有几m,文件如此大load页面的时候需要较长时间的加载,特别在生产环境中,灰常不利于用户体验. 因此我们需要进 ...