python基础之文件操作和异常处理

一、文件和异常

1.1从文件中读取数据

读取整个文件

读取文件先要创建一个文件,在程序的同一目录下。

greet.txt
“Hello World!
Hello World!
Hello World!
Hello World!”

with open('greet.txt') as file_object:
   contents=file_object.read()
print(contents)

如果txt文件中有中文,输出出现乱码时,可以with open(‘greet.txt',encoding=‘UTF-8') as file_object:。

1.2open()

要以任何方式使用文件时,都必须先打开文件,才能访问。函数open()接受一个参数,打开文件的名称。在这里open(‘greet.txt')返回的是一个表示文件greet.txt的对象,然后将该对象赋给file_object供以后使用。

1.3关键字with

关键字with在不再需要访问文件后将其关闭。也可以调用open()和close()来打开文件。但是不推荐。

1.4read()

方法read()读取文件的全部内容,并将其作为一个长长的字符串赋给变量contents。

二、逐行读取

with open('greet.txt',encoding='UTF-8') as file_object:
   for line in file_object:
      print(line)

会发现多输出空白行,文件末尾会有一个换行符,而print会换行,所以就多了,可以使用rstrip()。

with open('greet.txt',encoding='UTF-8') as file_object:
   for line in file_object:
      print(line.rstrip())

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

with open('greet.txt',encoding='UTF-8') as file_object:
   lines=file_object.readlines()
for line in lines:
   print(line.rstrip())

3.1readlines()

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

四、查找字符串中是否含有特定的字符串

greet_str=''
with open('greet.txt',encoding='UTF-8') as file_object:
   lines=file_object.readlines()
for line in lines:
   greet_str+=line
input_str=input('输入你想查找的字符串')
if input_str in greet_str:
   print('有')
else :
   print('无')

4.1对字符串进行修改

message='Hello World!'
print(message.replace('World','China'))

五、写入文件

5.1写入空文件

with open('greet.txt','w',encoding='UTF-8') as file_object:
   file_object.write('我爱编程')

w'告诉Python要以写入模式打开这个文件。打开文件时可以指定模式:读取模式'r‘,写入模式'w',附加模式‘a'或读写模式'r+‘。如果省略了模式实参,则默认只读模式打开文件。

使用写入模式时要小心,因为会把文件的内容清空。

5.2写入多行

函数write()不会在文本末尾加换行符所以要我们自己添加。

5.3附加到文件

如果要在文件末尾附加内容,可以打开附加模式,如果指定文件不存在,Python将自动创建一个空文件。
先greet.txt

with open('greet.txt','a',encoding='UTF-8') as file_object:
   file_object.write('我爱编程\n')

后greet.txt

六、异常

Python使用称为异常的特殊对象来管理程序执行期间发生的错误。
异常是使用try-except代码块进行处理的。

6.1处理ZeroDivisionError异常

try:
   print(4/0)
except ZeroDivisionError:
   print('不能数以0')

如果代码块try-except后面还有代码将接着运行。

try:
   print(4/0)
except ZeroDivisionError:
   print('不能数以0')
print('--==')

6.2处理FileNotFoundError异常

使用文件时如果找不到文件,可以使用try-except代码块。

分析文本 split()

split()能根据一个字符串创建一个列表,它以空格为分隔符将字符串拆成多个部分。

str='你好 世界'
print(str.split())

6.3静默失败

当发生异常时我们也可以什么都不做。

try:
   print(4/0)
except ZeroDivisionError:
   pass

pass也可以提示我们什么都没有做。

七、存储数据

模块json可以将简单的数据结构储存在文件当中。json
不仅仅能在python中分享数据,也可以给其他编程语言分享。

7.1使用json.dump()和json.load()

import json
number=list(range(10))
with open('number.json','w') as file:
   json.dump(number,file)

json.dump()接受两个实参:要 储存的数据和储存数据的文件对象。文件通常使用文件扩展名.json来支出文件储存的数据为JSON格式。

import json

with open('number.json') as file:
   number=json.load(file)

print(number)

7.2重构

将代码改进的过程称为重构。重构使代码更加清晰,更易于理解,更容易扩容。

到此这篇关于python基础之文件和异常处理的文章就介绍到这了,更多相关python文件和异常内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python Selenium异常处理的实例分析

    1.说明 在使用selenium时,不可避免的会遇到一些异常情况,比如超时.没有找到节点的错误等等.一旦出现这样的错误,程序就不能再运行了.这里我们可以使用tryexcept语句来捕捉异常. 2.实例 from selenium import webdriver from selenium.common.exceptions import TimeoutException, NoSuchElementException browser = webdriver.Chrome() try: brow

  • Python random库使用方法及异常处理方案

    1.random库的使用: random库是使用随机数的Python标准库 从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围.计算机不能产生真正的随机数,那么伪随机数也就被称为随机数 --伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素 python中用于生成伪随机数的函数库是random 因为是标准库,使用时候只需要importrandom rand

  • python编程进阶之异常处理用法实例分析

    本文实例讲述了python异常处理用法.分享给大家供大家参考,具体如下: 之前用Java的时候,在容易出错的地方我们经常使用try-catch或者try-catch-finally来捕捉和显示异常,在python中很高兴地发现它也有这样的机制. try..except 这个用于当异常出现的时候,用except从句来处理异常,而不至于程序自动退出.例如,在python里获取用户输入时,若用户输入文件结束符Ctrl-d,则会引发EOFError文件结束异常.我们使用try except来处理: #!

  • Python打包exe时各种异常处理方案总结

    异常: You are using pip version 10.0.1, however version 21.1.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command. 方案: 运行 - > cmd - > 指令 python -m pip install --upgrade pip 找到Python目录下的 Scripts 添加到系统环境变量

  • Python异常处理机制结构实例解析

    首先,Python 完整的异常处理语法结构如下: try: #业务实现代码 except Exception1 as e: #异常处理块1 ... except Exception2 as e: #异常处理块2 ... #可以有多个 except ... else: #正常处理块 finally : #资源回收块 ... 整个异常处理结构的执行过程,如图 1 所示. 注意,在整个异常处理结构中,只有 try 块是必需的,也就是说: 如果没有 try 块,则不能有后面的 except 块.else

  • Python异常处理中容易犯得错误总结

    目录 Python异常处理机制 Python异常处理机制 如果try异常处理中存在finally,finally中的代码总会得到执行 下面例子只是作为演示,不用去纠结业务逻辑 容易犯的错误1 看下面的代码,写出输出结果 def dig_dig1(): while True: print("I'm in while loop") try: print("I'm in try") raise EOFError except IOError: print("IO

  • python except异常处理之后不退出,解决异常继续执行的实现

    写了个等待分析结果,解析分析结果json的脚本 那个文件生成时候有点大,有时候监测到新文件就去解析可能文件只生成了一半,就会抛出异常退出当前线程,此次的分析结果就丢失了,如果load json文件失败,一般就是上百M到几G的json大文件,等待10秒,如果再次load失败,重新再load一次,这样脚本看上去挺繁琐的,监控线程又只能监控文件的创建,修改和删除,不知道创建的文件是否写完毕. def run_analyze(): sleep(2) berror = True temp = {} whi

  • Python pip install之SSL异常处理操作

    异常内容: C:\Users\ccwant>pip install requests Collecting requests Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

  • python异常处理之try finally不报错的原因

    因为有把python程序打包成exe的需求,所以,有了如下的代码 import time class LoopOver(Exception): def __init__(self, *args, **kwargs): pass class Spider: def __init__(self): super().__init__() def run(self): raise LoopOver @property def time(self): return '总共用时:{}秒'.format(se

  • python异常处理、自定义异常、断言原理与用法分析

    本文实例讲述了python异常处理.自定义异常.断言原理与用法.分享给大家供大家参考,具体如下: 什么是异常: 当程序遭遇某些非正常问题的时候就会抛出异常:比如int()只能处理能转化成int的对象,如果传入一个不能转化的对象就会报错并抛出异常 常用的异常有: ValueError :传入无效的错误的参数 TypeError:进行了对类型无效的操作 IndexError:序列中没有此索引 NameError:使用未定义的变量 更多更具体的异常可以参考Python官方文档,读读官方文档更健康 异常

随机推荐