Python简单实现文件中的信息操作

python简单的文件中信息操作

文件读写

我们可以用python来实现读取对文件中文本信息的读取,代码如下:

def main():
    # 正常读写
    fs = open('hello.txt', 'r', encoding='utf-8')     # 和fs.close同时出现
    # 相对路径(相对目前的路径)、绝对路径(完整的文件路径)
    content = fs.read()     # 读取
    print(content)
    fs.close()


if __name__ == '__main__':
    main()

异常机制 – 处理程序在运行过程中出现的意外状况的手段,因为不是所有的问题都能在写程序调试程序的时候就能发现,所以上面的代码可以改成下面的方式更好:

import time

def main():
    try:  # 把可能出现状况的文件保护起来,
        with open('helo', 'r', encoding='utf-8') as fs:
            for line in fs:
                print(line, end='\n')
                time.sleep(1)
    except FileNotFoundError as e:  # 如果文件出现状况,except捕捉异常。
        print(e)   # 如果文件异常,打印错误提示
        print('指定文件无法打开')
    print('程序执行程序')

if __name__ == '__main__':
    main()

把文档写入文件中也可以实现:

def main():
    try:
        with open('hello.txt', 'w', encoding='utf-8') as fs:
            fs.write('我想做燕子')
            fs.write('只需简单思想')
    except (FileNotFoundError, IOError):
        print('指定文件无法打开')
    print('程序执行程序')

if __name__ == '__main__':
    main()

图片格式可以通过二进制装换,实现图片的读写:

def main():
    try:
        with open('../123/q.JPG', 'rb') as fs1:  # 把图片转移成二进制格式
            data = fs1.read()
            print(data)
            print(type(data))
        with open('../abc/hi.jpg', 'wb') as fs2:  # 把二进制格式图片存入新的文件夹中,
            fs2.write(data)   # 写数据
    except FileNotFoundError as e:
        print(e)
        print('指定的文件无法打开')
    except IOError:
        print('读写文件时出现错误')
    print('程序执行结束')


if __name__ == '__main__':
    main()

练习

# 把一万以内的素数分开装在三个文档中
from math import sqrt


def is_prime(n):
    assert n > 0   # 断言:保证条件成立
    for factor in range(2, int(sqrt(n)) + 1):
        if n % factor == 0:
            return False
    return True if n != 1 else False


def main():
    filenames = ('a.txt', 'b.txt', 'c.txt')
    fs_list = []
    try:
        for filename in filenames:
            fs_list.append(open(filename, 'w', encoding='utf-8'))
        for number in range(1, 10000):
            if is_prime(number):
                if number < 100:
                    fs_list[0].write(str(number) + '\n')
                elif number < 1000:
                    fs_list[1].write(str(number) + '\n')
                else:
                    fs_list[2].write(str(number) + '\n')
    except IOError:
        # 如果try中出现了状况就通过except来捕获错误(异常)进行对应的处理
        print('读写文件发生错误')
    else:
        # 如果没有出状况那么可以把无风险的代码放到else中执行
        pass

    finally:
        # 不管程序正常还是异常最后这里代码一定执行
        # 所以此处最适合做释放外部资源的操作
        print('释放文件资源')
        for fs in fs_list:
            fs.close()
    print('程序运行完成')


if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值