文件读取:

pi_digits.txt

3.1415926535
 8979323846
    2643383279

file_reader.py

  1. with open('pi_digits.txt') as file_object:
  2. contents = file_object.read()
  3. print(contents)

在这个程序中,第1行代码做了大量的工作。我们先来看看函数 open() 。要以任何方式使用文件——哪怕仅仅是打印其内容,都得先打开文件,这样才能访问它。函数 open() 接受一个参数:要打开的文件的名称。Python在当前执行的文件所在的目录中查找指定的文件。在这个示例中,当前运行的是file_reader.py,因此Python在file_reader.py所在的目录中查找pi_digits.txt。函数 open()返回一个表示文件的对象。在这里, open('pi_digits.txt') 返回一个表示文件 pi_digits.txt 的对象;Python将这个对象存储在我们将在后面使用的变量中。

关键字 with 在不再需要访问文件后将其关闭。在这个程序中,注意到我们调用了 open() ,但没有调用 close() ;你也可以调用 open() 和 close() 来打开和关闭文件,但这样做时,如果程序存在bug,导致 close() 语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调用 close() ,你会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用前面所示的结构,可让Python去确定:你只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。有了表示 pi_digits.txt 的文件对象后,我们使用方法 read() (前述程序的第2行)读取这个文件的全部内容,并将其作为一个长长的字符串存储在变量 contents 中。这样,通过打印 contents的值,就可将这个文本文件的全部内容显示出来。

文件绝对路径示例:

file_path = 'C:\\Users\\zhangchengming\\Desktop\\test.txt'

逐行读取文件:

  1. filename = 'pi_digits.txt'
  2. with open(filename) as file_object:
  3. for line in file_object:
  4. print(line)

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

  1. filename = 'pi_digits.txt'
  2. with open(filename) as file_object:
  3. lines = file_object.readlines()
  4. for line in lines:
  5. print(line.rstrip())

写入文件:

write_message.py

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

在这个示例中,调用 open() 时提供了两个实参。第一个实参也是要打开的文件的名称;第二个实参( 'w' )告诉Python,我们要以写入模式打开这个文件。打开文件时,可指定读取模式( 'r' )、写入模式( 'w' )、附加模式( 'a' )或让你能够读取和写入文件的模式( 'r+' )。如果你省略了模式实参,Python将以默认的只读模式打开文件。
       如果你要写入的文件不存在,函数 open() 将自动创建它。然而,以写入( 'w' )模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。我们使用文件对象的方法 write() 将一个字符串写入文件。这个程序没有终端输出,但如果你打开文件programming.txt,将看到其中包含如下一行内容:
programming.txt

  1. I love programming.

追加到文件:

  1. filename = 'programming.txt'
  2. with open(filename, 'a') as file_object:
  3. file_object.write("I also love finding meaning in large datasets.\n")
  4. file_object.write("I love creating apps that can run in a browser.\n")yichang

异常:

  1. file_path = 'C:\\Users\\zhangchengming\\Desktop\\test.txt'
  2. try:
  3. with open(file_path) as file_object:
  4. contents = file_object.read()
  5. except FileNotFoundError:
  6. pass
  7. else:
  8. print(contents.rstrip())

json.dump() 和 json.load() 存储数据:

  1. import json
  2.  
  3. username = input("What is your name? ")
  4. filename = 'username.json'
  5. with open(filename, 'w') as f_obj:
  6. json.dump(username, f_obj)
  7. print("We'll remember you when you come back, " + username + "!")

Python第三弹--------文件和异常的更多相关文章

  1. python入门三:文件操作

    一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 f = open("xxx") # 打开文件并获取文件对象 f.xxx # 对文件进行某些操作 ...

  2. Python基础知识:文件和异常

    1.相对路径:如果文件和程序在同一文件夹内,可不用路径:如果文件在程序所在文件夹下一级文件夹中,只需添加下一级文件夹名称即可: 在Linux和OS系统中:文件路径中使用斜杠(/) 在Windows系统 ...

  3. Python 第三天 文件操作(2)

    文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  fi ...

  4. Python(三)——文件操作

    在我们用语言的过程中,比如要往文件内进行读写,那么势必要进行文件操作,那么咋操作呢?用眼睛直接看么?今天就定个小目标,把文件读写那些事扯一扯 文件操作 把大象放进冰箱分几步? 第一步:打开冰箱 第二步 ...

  5. 【笔记】Python基础三:文件

    一,文件操作 (一),文件处理流程 1,打开文件,获得文件句柄(open函数提供)并赋值 2,通过句柄对文件进行操作 3,关闭句柄 f = open('陈粒',encoding='utf-8')#op ...

  6. 2 python第三章文件操作

    1.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成立 els ...

  7. Head First Python学习笔记2——文件与异常

    文件处理 1.用open()就可以打开文件,但是请注意:文件里有中文请设置编码,如 :open("filepath","r",encoding="ut ...

  8. Python笔记(三十)_python标准异常总结

    python标准异常总结 AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) ...

  9. python第三周文件处理和函数-----下

    #默认参数的值是在一开始定义的时候就传给了函数, # 在后来的修改中不会被修改. #默认参数的值必须放到位置形参参数的最后面 #默认参数使用的场景是一个参数不经常变得场景,所以参数一般是不可变类型.字 ...

随机推荐

  1. Ext.form.field.Picker (ComboBox、Date、TreePicker、colorpick.Field)竖向滚动导致布局错误

    ComboBox.Date.TreePicker.colorpick.Field这些继承了Ext.form.field.Picker的控件. 在6.0.0和6.0.1中,在界面中存在竖向滚动条时,点击 ...

  2. nodejs XML和json互相转换

    Docs: https://www.npmjs.com/package/fast-xml-parser const xml = ` <user> <name>ajanuw< ...

  3. 用nodejs搭建一个简单的服务监听程序

    作为一个从业三年左右的,并且从事过半年左右PHP开发工作的前端,对于后台,尤其是对以js语言进行开发的nodejs,那是比较有兴趣的,虽然本身并没有接触过相关的工作,只是自己私下做的一下小实验,但是还 ...

  4. maven assembly plugin使用

    使用场景 在使用maven来管理项目时,项目除了web项目,还有可能为控制台程序,一般用于开发一些后台服务的程序.最近在工作中也遇到了这种场景,使用quartz开发一个任务调度程序.程序中依赖很多ja ...

  5. db2 Reorgchk:重组检查,是否需要重组

    Reorgchk:重组检查,是否需要重组.判断表或索引是否需要重组,有2种方法:1.通过reorgchk工具  reorgchk工具利用8个公式(3个表公式,5个索引公式),如果表统计结果F1,F2或 ...

  6. db2 reorg table failed处理

    概要: 当对一个表的结构进行改变后,需要reorg表,重新组织其目录统计信息,为数据库的访问计划提供信息,以便高效执行对其的操作. 对表作reorg操作,发生错误,通过db2 "? sql0 ...

  7. 主从读写分离----mysql-proxy0.8.5安装与配置

    废话不多说,直接开干: 1.安装环境: yum -y install libevent glib2 lua gcc gcc-c++ autoconf mysql-devel libtool pkgco ...

  8. python面向对象:类方法

    类的方法包括以下几种: 构造方法 :__init__(self,) 析构方法 :__del__(self) 类方法@classmethod.实例方法.静态方法@staticmethod 一.构造方法 ...

  9. UIScrollView的一些关系

    contentInsets和contentoffset以及contentSize 可见范围: contentSize + contentInsets 也就是(contentSize.width+con ...

  10. windows hook 钩子

    windows  hook  钩子 场景: 1.打印机 Ctrl+P弹出支付窗口,付款成功后打印