Python学习笔记:文件操作、异常处理、JSON

读文件

file_object = open(filename) 打开filename文件,返回该文件的对象
file_object.close() 关闭文件
with open(filename) as file_object: with会在在不需要访问文件后将其关闭
注意with行末尾也要跟着:
file_object.read() 把文件内容读取成一串字符串
file_object.readlines() 把文件内容按行读取成列表
#文件对象使用readlines()或者read()后就不能读出文件内容了。???
float() #将字符串转换成浮点数
int() #将字符串转换成整数
string_name.replace('a', 'b') 将string_name中所有的a都替换成b

filename = 'admin.py'

with open(filename) as file_object:
    text1 = file_object.read()  #一次读取全部内容
    print('text1 =')
    print(text1)

with open(filename) as file_object:
    print('text2 =')
    for text2 in file_object:   #逐行读取
        print(text2.rstrip())

with open(filename) as file_object:
    print('text3 =')
    text3 = file_object.readlines() #将内容按行存储成列表
    print(text3)

#将内容变为一行
text3_string = ''
for line in text3:
    text3_string += line.strip()
print('text3_string =')
print(text3_string)

这里写图片描述

写文件

open(filename, 'w') open()可以接受两个参数,第一个参数为文件名,第二个参数为打开文件的方式:
'w'表示写入,会清空原文件内容,若文件不存在则创建;
'a'表示附加,在文件末尾添加新内容,若文件不存在则创建;
'r'表示只读,若文件不存在则报错;
'r+'表示读写,可读可写,若文件不存在则报错;
若第二个参数缺省,则默认以只读方式打开文件。

#在该文件目录下没有file1.txt文件
filename1 = 'file1.txt'

with open(filename1, 'a') as file1:
    file1.write('I love Python!\n')

with open(filename1, 'r') as file1:
    print(file1.read())

print('---------')
with open(filename1, 'w') as file1:
    file1.write('I write Python!\n')

with open(filename1, 'r+') as file1:
    print(file1.read()) #因为read()后读到文件末尾
    file1.write('I am learning Python!\n')  #所以写入也是在末尾写入
    print(file1.read())
    #如果一开始就写入,则会覆盖原来的内容

print('---------')
with open(filename1) as file1:
    print(file1.read())

这里写图片描述

异常

try:
# 你要执行的代码
except 异常对象 :
# 异常处理
else:
# 依赖与try代码块成功执行的代码都应该放在else代码块中。

pass #略过,什么也没做。

def cat(file):
    try:
        with open(file) as f_obj:
#           print(f_obj.read())
            print(f_obj.readline())
    except FileNotFoundError:
        print(file + ' Not Exist.')
        pass

files = ['cats.txt', 'dogs.txt', 'alice.txt']
for file in files:
    cat(file)

JSON

import json

json.dump(data, fileObject) #将data保存到文件fileObject中
data = json.load(fileObject) #从文件fileObject中加载数据

# rememberMe.py
# 如果以前存储了用户名,就加载
# 否则,就提示用户输入用户名并存储

import json

filename = 'username.json'
try:
    with open(filename) as f_obj:
        username = json.load(f_obj)
except FileNotFoundError:
    username = input("What is your name?")
    with open(filename, 'w') as f_obj:
        json.dump(username, f_obj)
        print("We'll remember you when you come back, " + username + "!")
else:
    print("Welcome back, " + username + "!")

下面的代码只是为了展示每个函数都执行单一而清晰的任务。

# rememberMeAgain.py
# 如果以前存储了用户名,就加载
# 否则,就提示用户输入用户名并存储

import json

def getStoredUsername():
    """如果存储了用户名,就获取它"""
    filename = 'username.json'
    try:
        with open(filename) as f_obj:
            username = json.load(f_obj)
    except FileNotFoundError:
        return None
    else:
        return username

def getNewUsername():
    """提示用户输入用户名"""
    filename = 'username.json'
    username = input("What is your name? ")
    with open(filename, 'w') as f_obj:
        json.dump(username, f_obj)
    return username

def greetUser():
    """问候用户,并指出其名字"""
    username = getStoredUsername()
    if username:
        print("Welcome back, " + username + "!")
    else:
        username = getNewUsername()
        print("We'll remember you when you come back, " + username + "!")

greetUser()

如果觉得此文章有用,点击这里,万分感谢。
这里写图片描述

Reference

[美]Eric Matthes著,袁国忠译. Python编程从入门到实践[M]. 北京:人民邮电出版社. 2016.7.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值