zoukankan      html  css  js  c++  java
  • 10:文件的读写

    本章内容:

    文件打开方式

    文件内容读取

    文件内容写入

    文件扩展用法

     

    01:文件打开方式

    open函数

    file_object = open(file_name, access_mode='r')

    默认是读的模式

    file_name

    文件路径:相对路径和绝对路径

    access_mode

    读+写

    image.png

    文件的相对路径

    如果进程操作文件,不是全路径

    open(‘file1.txt’)

    open(‘fold/file1.txt’)

    open('../file1.txt')

    ../../表示上级目录的上级目录,以此类推

    相对于当前目录来寻找该文件

    称之为相对路径

     

    02:文件内容读取

    文件模式--r

    只是为了读取文件而打开文件。文件指针在文件的开头,这也是缺省的文件打开方式

    open(‘file1’)==open(‘file1’,‘r’)

     

    fo.read()

    注意文件指针的移动,最后的关闭操作

    有具体的读的长度,就读具体个数

    fh.read(2)

    没有具体读的长度,就读全部

    fh.read()

    读操作-如果文件不存在,会报错

    image.png

    文件关闭

    fo.close()

     

    文件指针

    image.png

    03:文件读取一行内容

    image.png

    04:文件内容写入

    文件写操作--如果不存在-会新建,文件存在-会清空所有内容

    使用场景:输出本次使用的详细信息

    fileDir = ‘G:\pyTest.txt’

    fo.open(fileDir,'w')

     

    #写操作

    image.png

    05:追加模式--a

    只是为了在文件末尾追加内容而打开文件

    如果文件存在,文件指针在文件的结尾

    如果文件不存在,则创建一个文件

    image.png

    文件扩展用法

    image.png

    with open()用法

    with语句会在其代码块执行完毕之后自动关闭文件

    image.png

    先一次性读取所有行到内存,然后再遍历打印

    with open('song.txt', 'r', encoding='utf-8') as f:
        for line in f.readlines():
            print(line)

    这种方式的缺点与read()方法是一样的,都是会消耗大量的内存空间

    with open('song.txt', 'r', encoding='utf-8', newline='') as f:
        for line in f:
            print(line)

    作业:

    01:请定义一个函数 mySort,参数为一个列表,参数列表中的元素都是整数.

    mySort 函数需要将参数列表中的元素按从小到大排序,最终返回一个新的list。

    请按下面算法的思路实现函数:

    1. 创建一个新的列表newList

    2. 先找出所有元素中最小的,append在newList里面

    3. 再找出剩余的所有元素中最小的,append在newList里面

    4. 依次类推,直到所有的元素都放到newList里面 

    image.png

     

    02:现有文件1(如下,请保存到文件file1.txt中), 记录了公司员工的薪资,其内容格式如下

    name: Jack   ;    salary:  12000

    name :Mike ; salary:  12300

    name: Luk ;   salary:  10030

     name :Tim ;  salary:   9000

    name: John ;    salary:  12000

    name: Lisa ;    salary:   11000

    每个员工一行,记录了员工的姓名和薪资,

    每行记录 原始文件中并不对齐,中间有或多或少的空格

    现要求实现一个python程序,计算出所有员工的税后工资(薪资的90%)和扣税明细,

    以如下格式存入新的文件 file2.txt中,如下所示

    name: Jack   ;    salary:  12000 ;  tax: 1200 ; income:  10800

    name: Mike   ;    salary:  12300 ;  tax: 1230 ; income:  11070

    name: Luk    ;    salary:  10030 ;  tax: 1003 ; income:   9027

    name: Tim    ;    salary:   9000 ;  tax:  900 ; income:   8100

    name: John   ;    salary:  12000 ;  tax: 1200 ; income:  10800

    name: Lisa   ;    salary:  11000 ;  tax: 1100 ; income:   9900

    要求像上面一样的对齐

    tax 表示扣税金额和 income表示实际收入。注意扣税金额和 实际收入要取整数  

    image.png

  • 相关阅读:
    Redis 如何设置密码及验证密码?
    怎么测试 Redis 的连通性?
    Redis 的内存用完了会发生什么?
    假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以 某个固定的已知的前缀开头的,如果将它们全部找出来?
    使用过 Redis 做异步队列么,你是怎么用的?
    简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别 ?
    你怎么看到为表格定义的所有索引?
    深入理解卷积网络的卷积
    OpenCV-Python 图像阈值 | 十五
    OpenCV-Python 图像的几何变换 | 十四
  • 原文地址:https://www.cnblogs.com/kelly11/p/13434300.html
Copyright © 2011-2022 走看看