Python从新手到大师——10:文件操作

代码一

#! /usr/bin/env python
"""
@Time     : 2018/8/24 22:29
@Author   : Damao
@Site     : Life is short. I use python.
@File     : test1.py
@Software : PyCharm

"""
"""没有指定文件或文件不存在会报错"""

def test():
    f = open('abc.txt','r',encoding='utf-8')
    print(f.read())
    f.close()


if __name__ == '__main__':
    test()

代码二

#! /usr/bin/env python
'''
__Time__    : 2018/8/24 22:36
__Author__   : Damao
__Site__    : Life is short. I use python.
__File__     : test2.py
__Software__ : PyCharm
'''
"""处理异常"""

def main():
    f = None
    try:
        f = open('致橡树.txt', 'r', encoding='utf-8')
        print(f.read())
    except FileNotFoundError:
        print('无法打开指定的文件!')
    except LookupError:
        print('指定了未知的编码!')
    except UnicodeDecodeError:
        print('读取文件时解码错误!')
    finally:
        if f:
            f.close()


if __name__ == '__main__':
    main()

代码三

#! /usr/bin/env python
'''
__Time__    : 2018/8/24 22:41
__Author__   : Damao
__Site__    : Life is short. I use python.
__File__     : test3.py
__Software__ : PyCharm
'''

"""with语句"""

def main():
    try:
        with open('致橡树.txt','r',encoding='utf-8') as f:
            print(f.read())
    except FileNotFoundError:
        print('无法打开指定的文件!')
    except LookupError:
        print('指定了未知的编码!')
    except UnicodeDecodeError:
        print('读取文件时解码错误!')


if __name__ == '__main__':
    main()

代码四

#! /usr/bin/env python
'''
__Time__    : 2018/8/24 22:44
__Author__   : Damao
__Site__    : Life is short. I use python.
__File__     : test4.py
__Software__ : PyCharm
'''

"""多种方式读取文件"""
def test():
    # 一次性读取所有文件内容
    with open('致橡树.txt','r',encoding='utf-8') as f:
        print(f.read())

    # for循环读取
    with open('致橡树.txt',mode='r',encoding='utf-8') as f:
        for i in f:
            print(i,end='')

    # 按行读取文件到列表中
    with open('致橡树.txt', mode='r', encoding='utf-8') as f:
        l = []
        for i in f:
            l.append(i[:-2])
            # if i[-2:] == '\n':
            #     # i = i[:-2]
            #     l.append(i[:-2])
        for index in range(len(l)-1):
            if l[index] == '':
                del l[index]
        print(l)
        # lines = f.readlines()
        # print(lines)


if __name__ == '__main__':
    test()

代码五

#! /usr/bin/env python
'''
__Time__    : 2018/8/24 22:57
__Author__   : Damao
__Site__    : Life is short. I use python.
__File__     : test5.py
__Software__ : PyCharm
'''
a = '1213213213'
print(a[:-2])
print(a[-2:])

代码六

#! /usr/bin/env python
'''
__Time__    : 2018/8/24 23:12
__Author__   : Damao
__Site__    : Life is short. I use python.
__File__     : test6.py
__Software__ : PyCharm
'''
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 = ('C:\\MYTEST\\a.txt', 'C:\\MYTEST\\b.txt', 'C:\\MYTEST\\c.txt')
    fs_list = []
    try:
        for filename in filenames:
            fs_list.append(open(file=filename, mode='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 as ex:
        print(ex)
        print('写文件时发生错误!')
    finally:
        for fs in fs_list:
            fs.close()
    print('操作完成!')


if __name__ == '__main__':
    main()

代码七

#! /usr/bin/env python
'''
__Time__    : 2018/8/25 21:34
__Author__   : Damao
__Site__    : Life is short. I use python.
__File__     : test7.py
__Software__ : PyCharm
'''

"""读写二进制文件,下面代码实现复制文件的功能"""

def test():
    try:
        with open(file='mm.jpg',mode='rb') as f:
            data = f.read()
        with open(file='C:\\MYTEST\\copy_mm.jpg',mode='wb') as f1:
            f1.write(data)
    except FileNotFoundError as e:
        print("文件未找到",e)
    except IOError as e:
        print("读写文件时错误",e)
    print("程序执行完毕。")


if __name__ == '__main__':
    test()

代码八

#! /usr/bin/env python
'''
__Time__    : 2018/8/25 21:50
__Author__   : Damao
__Site__    : Life is short. I use python.
__File__     : test8.py
__Software__ : PyCharm
'''
"""
保存json格式文件

    dump - 将Python对象按照JSON格式序列化到文件中
    dumps - 将Python对象处理成JSON格式的字符串
    load - 将文件中的JSON数据反序列化成对象
    loads - 将字符串的内容反序列化成Python对象

"""

import json


def test_save_json_data():
    json_data ={
                'name': 'damao',
                'age': 1,
                'qq': 123456,
                'friends': ['小红', '小明'],
                'cars': [
                    {'brand': 'BYD', 'max_speed': 180},
                    {'brand': 'Audi', 'max_speed': 280},
                    {'brand': 'Benz', 'max_speed': 320}
                     ]
                }
    try:
        with open(file='C:\\MYTEST\\test_json_data.json',mode='w',encoding='utf-8') as f:
            json.dump(json_data,f)
    except IOError as e:
        print("读写错误",e)
    print("json数据保存成功!")

def test_read_json_filedata():
    try:
        with open(file="C:\\MYTEST\\test_json_data.json",mode='r',encoding='utf-8') as f:
            a = json.load(f)
            print(json.dumps(a,ensure_ascii=False,indent=4,separators=(':',',')))  # 格式化json数据输出
    except IOError as e:
        print("读写错误", e)
    print("json数据读取成功!")


if __name__ == '__main__':
    # test_save_json_data()
    test_read_json_filedata()



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容