Python 学习笔记之 文件与异常

本文介绍了Python中文件的读取方法,如逐行读取和创建列表,以及写入文件的不同模式。此外,还讲解了如何处理常见的异常,如ZeroDivisionError和FileNotFoundException,并展示了如何用JSON存储和读取数据。
摘要由CSDN通过智能技术生成

读取文件:

##  读取整个文件
##  也可使用全路径,比较C:\User\...
with open('pi_digits.txt') as file_object:
    contents = file_object.read()
    print(contents)

##  逐行读取
filename = 'pi_digits.txt'
with open(filename) as file_object:
    for line in file_object:
       ## print(line.rstrip())  可消除换行
        print(line)

##  创建一个包含文件各行内容的列表
filename = 'pi_digits.txt'
with open(filename) as file_object:
    lines = file_object.readlines()  ##
for line in lines:
    print(line.rstrip())
    
##  使用文件的内容
filename = 'pi_digits.txt'
with open(filename) as file_object:
    lines = file_object.readlines()
    pi_string = ''
for line in lines:
    #pi_string += line.rstrip()  # rstrip删除每行末尾的换行符
    #  删除这些空格,可使用strip()而不是rstrip()
    pi_string += line.strip()  
print(pi_string)
print(pi_string[:10] + "...")  # 提取前10位
print(len(pi_string))
# if srt in pi_string:  检查字符str是否在pi_string中

写入文件:

## 写入文件
filename = 'programming.txt'
with open(filename, 'w') as file_object:  # 使用'w'注意会删除原文件的内容
    file_object.write("I love programming.")

'''
Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数
str()将其转换为字符串格式。
'''

##  写入多行 
filename = 'programming.txt'
with open(filename, 'w') as file_object:
    file_object.write("I love programming.\n")
    file_object.write("I love creating new games.\n")
# 不使用\n会让两字符串挤在一起

##  附加内容到文件  
filename = 'programming.txt'
with open(filename, 'a') as file_object:  # 使用'a'将内容附加到文件末尾
    file_object.write("I also love finding meaning in large datasets.\n")
    file_object.write("I love creating apps that can run in a browser.\n")

异常:

##  处理 ZeroDivisionError 异常
try:
    print(5/0)
except ZeroDivisionError:
    print("You can't divide by zero!")

##  如何使用try-except代码块
print("Give me two numbers, and I'll divide them.")
print("Enter 'q' to quit.")
while True:
    first_number = input("\nFirst number: ")
    if first_number == 'q':
        break
    second_number = input("Second number: ")
    try:
        answer = int(first_number) / int(second_number)
    except ZeroDivisionError:
#       pass #一个pass语句,可在代码块中使用它来让Python什么都不要做
        print("You can't divide by 0!")
    else:
        print(answer)
        
##  处理 FileNotFoundError 异常
filename = 'alice.txt'
try:
    with open(filename) as f_obj:
        contents = f_obj.read()
except FileNotFoundError:
    msg = "Sorry, the file " + filename + " does not exist."
    print(msg)

存储数据之写入:

import json
filename = 'numbers.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)
    print(numbers)

存储数据之读取:

import json
filename = 'numbers.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)
    print(numbers)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值