zoukankan      html  css  js  c++  java
  • Python学习——文件操作和异常处理

    文件的读写
    1.函数open()接受一个参数:要打开的文件名称,并返回一个表示文件的对象
      1)文件路径
        相对文件路径
        绝对文件路径
        linux/OS X 文件路径中使用斜杠(/) 如file_path = '/home/filename.txt'
        Windows 文件路径中使用反斜杠() 如file_path = 'C:Usersfilename.txt'
        
    2.关键字with在不再需要访问文件后将其关闭。
    3.也可以用open()和close()来打开和关闭文件,但如此做当程序存在bug,close()语句未执行时,文件将不会正常关闭。
    4.读取文件
      1)方法read()可以读取文件的全部内容,将其作为一个长字符串存储,当read()到达文件末尾是返回一个空字符串,显示出来是一个空行。要删除多出来的空行,可以是使用方法rstrip()
      2)逐行读取
        可使用for循环,注意这里每行的末尾都有换行符,可以使用方法rstrip()清除
         for line in file_object:
           print(line)
        可使用方法readlines(),从文件中读取每一行,并将其存储在一个列表中,在with代码块外仍可使用
         lines = file_object.readlines()
    5.写入文件 
      1)写入文件时,调用open()要提供另一个实参,告诉Python你要写入打开的文件,第二个参数说明了打开文件的模式:'w': 写入模式,'r': 读取模式, 'a': 附加模式, 'r+':读取和写入模式
      省略模式实参则默认以只读方式打开
      ×××特别注意,以写入模式打开文件时,如果指定的文件已经存在,Python将在返回文件对象前清空该文件
      with open(filename, 'w') as file_object:
        file_object.write("Hello World!")
      2)添加内容
        只想给文件添加内容,而不覆盖原有内容,可以以附加模式打开文件
    异常的处理
    Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生错误时,它都会创建一个异常对象,若编写了处理该异常的代码,程序将继续运行,否则程序将停止,并显示一个traceback
    其中包含有关异常的报告
    1)try-except-else代码块
    若try代码块中的代码运行起来没有问题,python将跳过except代码块;否则python将查找except代码块,并进行处理。而依赖于try代码块成功执行的代码都放在else代码块中。
    如果出现错误时,对错误不进行任何处理,可使用pass语句,pass还充当了占位符,提醒你程序的某个地方还什么都没做,以后也许要添加些代码
    常见异常如: FileNotFoundError, ZeroDivisionError,ValueError
    下面是练习用的两个文件操作和异常处理的小程序

      

    # title = "Alice in Wonderland"
    # print(title.split())      方法split()将以空格为分隔符将字符串拆分成多个部分,并存储于一个列表中


    def count_words(filename):
    ''' count how many words in a text file '''
    try:
    with open(filename) as f_obj:
    contents = f_obj.read()
    except FileNotFoundError:
    pass
    #msg = "Sorry, the file " + filename + " does not exist."
    #print(msg)
    else:
    words = contents.split()
    print("The file " + filename + " has about " + str(len(words)) + " words.")


    def addTwoNumber():
    ''' add two numbers. '''
    first_number = input("First Number: ")
    second_number = input("Second Number: ")
    try:
    first_number = int(first_number)
    second_number = int(second_number)
    except ValueError:
    print("Please check if your input is legal.")
    return False
    else:
    res = first_number + second_number
    print(str(first_number)+" + "+str(second_number)+" is "+str(res))
    return True
  • 相关阅读:
    java Math类
    JAVA Date类与Calendar类【转】
    java Runtime类
    Java System类
    java 多线程
    java 包
    Java 内部类
    java 抽象类 以及模块方法设计模式,接口
    java 单例模式
    java 关于Java中静态代码块以及构造函数的执行先后顺序
  • 原文地址:https://www.cnblogs.com/QiLF/p/9231787.html
Copyright © 2011-2022 走看看