博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python入到到实战--第十章----文件
阅读量:4576 次
发布时间:2019-06-08

本文共 2492 字,大约阅读时间需要 8 分钟。

第十章  文件和异常

一、从文件中读取数据

with open('pi_digits.txt') as file_object:

  contents = file_ object.read()
  print(contents)
函数open() :接受一个参数---要打开的文件名称(在当前执行的文件(即.py程序文件) 所在的目录中查找文件)

函数open() 返回一个表示文件的对象。 在这里, open('pi_digits.txt') 返回一个表示文件pi_digits.txt 的对象; Python将这个对象存储在我们将

在后面使用的变量中。
关键字with 在不再需要访问文件后将其关闭。  使用关键字with 时, open() 返回的文件对象只在with 代码块内可用 ;
在这个程序中, 注意到我们调用了open() , 但没有调用close() ; 你也可以调用open() close() 来打开和关闭文件, 但这样做时, 如果程序存在bug

导致close() 语句未执行, 文件将不会关闭。这看似微不足道, 但未妥善地关闭文件可能会导致数据丢失或受损。 如果在程序中过早地调用close() 

你会发现需要使用文件时它已关闭 (无法访问) , 这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机,

但通过使用前面所示的结构, 可让Python去确定: 你只管打开文件, 并在需要时使用它, Python自会在合适的时候自动将其关闭。

 

有了表示pi_digits.txt的文件对象后, 我们使用方法read() (前述程序的第2行) 读取这个文件的全部内容, 并将其作为一个长长的字符串存储在变量contents

 read() 到达文件末尾时返回一个空字符串, 而将这个空字符串显示出来时就是一个空行。 要删除多出来的空行, 可在print 语句中使用rstrip() 

文件路径

 将类似pi_digits.txt这样的简单文件名传递给函数open() 时, Python将在当前执行的文件(即.py程序文件) 所在的目录中查找文件

Python打开不与程序文件位于同一个目录中的文件, 需要提供文件路径 , 它让Python到系统的特定位置去查找。
相对文件路径: 相对于当前运行的程序所在目录的 位置
绝对路径:文件在计算机中的准确位置

LinuxOS X中 ,以/   斜杠作为文件路径分割符,在Windows中使用\   反斜杠作为文件路径分隔符

==========
逐行读取

==========

filename = 'pi_digits.txt'

with open(filename) as file_object:
  for line in file_object:
    print(line)

以上代码,每打印一行时,都会产生一行空白行,因为:在这个文件中, 每行的末尾都有一个看不见的换行符, 而print 语句也会加上一个换行符,

因此每行末尾都有两个换行符: 一个来自文件, 另一个来自print 语句。 要消除这些多余的空白行, 可在print 语句中使用rstrip()

filename = 'pi_digits.txt'

with open(filename) as file_object:
  for line in file_object:
    print(line.rstrip())

创建一个包含文件各行内容的列表 

filename = 'pi_digits.txt'

with open(filename) as file_object:
  lines = file_object.readlines()

for line in lines:

    print(line.rstrip())

方法readlines() 从文件中读取每一行, 并将其存储在一个列表中;

 

使用文件内容

包含一百万位的大型文件

filename = 'pi_million_digits.txt'

with open(filename) as file_object:
  lines = file_object.readlines()
  pi_string = ''
for line in lines:
  pi_string += line.strip()
print(pi_string[:52] + "...")
print(len(pi_string))

 

=========

写入文件--如果写入的文件不存在,open()将自动创建文件

=========

写入空文件

调用open() 时需要提供另一个实参, 告诉Python你要写入打开的文件。

filename = 'programming.txt'
with open(filename, 'w') as file_object:
  file_object.write("I love programming.")

调用open() 时提供了两个实参 。 第一个实参也是要打开的文件的名称; 第二个实参('w' ) 告诉Python, 我们要以写入模式 打开这个文件。 打开文件

时, 可指定读取模式 ('r' ) 、 写入模式 ('w' ) 、 附加模式 ('a' ) 或让你能够读取和写入文件的模式('r+' ) 。 如果你省略了模式实参, Python将以默认的只读模式打
开文件。 

注意:写入模式('w')要注意,如果文件存在,python返回文件对象前,会清空该文件。

  python只能将字符串写入文件,数值数据要写入文件前,必须先使用函数str()将其转换成字符串格式。

  添加多行时,需要写入换行符,否则后续写入的数据,会在前一次写入数据的末尾。

  追加内容到文件时,需要使用追加模式('a'),

转载于:https://www.cnblogs.com/beidou93/p/9910620.html

你可能感兴趣的文章
C# 修饰符
查看>>
Centos以rpm方式进行安装MySql
查看>>
supervisor
查看>>
洛谷P1081 开车旅行70分
查看>>
Linux中用户及用户组
查看>>
python常用sql语句
查看>>
退休惠普九大感言——根源(虽然不是孙振耀写的,但正如孙振耀本人所说:写这篇文章的人对大家的影响、启发,内容比谁来写更有意义)...
查看>>
IE 下a标签在 position:absolute 后无法点击的问题
查看>>
jquery 正则表达式
查看>>
mysql查询更新时的锁表机制分析(只介绍了MYISAM)
查看>>
JDBC如何调用存储过程
查看>>
扫盲记-第五篇--图像全景分割
查看>>
Haproxy安装与配置
查看>>
Linux之Ganglia源码安装
查看>>
Android中的Handler,Looper,Message机制
查看>>
Roman Numeral Converter
查看>>
魔幻之翼的博客
查看>>
java提高篇(四)-----理解java的三大特性之多态
查看>>
Python基础-----shelve模块
查看>>
文件发送成功率低的问题(1)
查看>>