【数模之文本文件操作】


文本文件操作

文件自行准备:

请添加图片描述

主要方法懂了就行,文不文件的内容先别太重视

例题1:

遍历文件data.txt中的所有行,统计每一行中字符的个数

相关程序代码如下:

# 文本文件操作
# 遍历文件data.txt中的所有行,统计每一行中字符的个数
with open('data.txt') as f:
    g1, g2 = [], []
    for l in f:
        g1.append(len(l))           # 求每行字符的个数
        g2.append(len(l.strip()))   # 去掉换行符

data = [str(s)+'\t' for s in g2]
print(g1)
print(g2)

with open('data2.txt', 'w') as f2:  # 写入到一个新的文件
    f2.writelines(data)             # 将g2运行结果写入到一个新的文件


运行结果如下:

在这里插入图片描述

写入的文件内容如下:

请添加图片描述


例题2:

随机产生一个数据矩阵,把它存入具有不同分隔符格式的文本文件中,再把数据从文本文件中提前出来

相关程序代码如下:

# 随机产生一个数据矩阵,把它存入具有不同分隔符格式的文本文件中,再把数据从文本文件中提前出来

import numpy as np
lxw = np.random.rand(6, 8)      # 生成6×8的[0, 1]上均匀分布的随机数矩阵
np.savetxt('data3.txt', lxw)    # 存成以制表符分隔得文本文件
np.savetxt('data4.csv', lxw, delimiter=',')     # 存成以逗号分隔得CSV文件

b = np.loadtxt('data3.txt')     # 加载空格分隔得文本文件
c = np.loadtxt('data4.csv', delimiter=',')      # 加载CSV文件

因为是随机的嘛,里面的值每运行一次,都会变化的,在这里,只作个大慨参考即可

data3.txt文件展示:

在这里插入图片描述

data4.txt文件展示:

在这里插入图片描述


文件操作基本知识

不管是文本文件还是二进制文件,其操作流程基本都是一致的。

  1. 打开文件并创建文件对象
  2. 通过该文件对象对文件进行读取、写入、删除和修改等操作
  3. 关闭并保存文件内容

内置函数open()

Python内置函数open()可以指定模式打开指定文件并创建文件对象,该函数的完整用法如下:

open(file, mode=‘r’, buffering=-1, encoding=None, errors=None,
newline=None, closefd=True, opener=None)

内置函数open()的主要参数如下:
file 指定要打开或创建的文件名称【如若该文件不在当前目录中,可以使用相对路径或绝对路径】
mode 指定打开文件的处理方式【下面会讲到】
encoding 指定对文本进行编码和解码的方式,只适用于文本模式【可使用Python支持的任何格式,如GBK、UTF-8等等】

'''
                        文件打开模式
                        
模式                          说明
r               读模式(默认模式,可省略)【若文件不存在则抛出异常】
w               写模式【若文件已存在,会清空原有内容】
x               写模式,创建新文件【若文件已存在则抛出异常】
a               追加模式【不覆盖文件中原有内容】
b               二进制模式(可与其他模式组合使用),使用二进制模式打开文件时
                不允许指定encoding参数
                
t               文本模式(默认模式,可省略)
+               读、写模式(可与其他模式组合使用)

'''


文件对象常用方法

# 文件对象常用方法
'''
若执行正常,open()函数返回一个可迭代的文件对象,通过该文件对象
可以对文件进行读写操作【文件对象常用方法如下】

                    文件对象常用方法
                    
方法                          功能说明
close()             把缓冲区的内容写入文件,同时关闭文件,并释放文件对象
read([size])        从文本文件中读取size个字符作为结果返回,或从二进制文件中
                    读取数量的字节并返回【若省略size则表示读取所有内容】
readline()          从文本文件中读取一行内容作为结果返回
readlines()         把文本文件中的每行文本作为一个字符串存入列表中,返回该列表
                    【对于大文件会占用较多内存,不建议使用】  
writes              把字符串s的内容写入文件
writelines          把字符串列表写入文本文件,不添加换行符
tell                返回文件指针的当前位置                  


'''

上下文管理语句with

在实际应用中,读写文件应优先考虑使用上下文管理语句with,关键字with可以自动管理资源
确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭。
with语句的用法如下:
with open(filename, mode, encoding) as f: # 通过文件对象f读写文件内容


趣编程

实现秒表功能(代码如下):

import time

print('按下回车开始计时,按下ctrl + C停止计时:')
while True:

    input("")
    starttime = time.time()
    print('开始')
    try:
        while True:
            print('计时:',round(time.time()-starttime, 0), '秒', end="\r")
            time.sleep(1)
    except KeyboardInterrupt:
        print('结束')
        endtime = time.time()
        print('总共的时间为:', round(endtime - starttime, 2), 'secs')
        break

运行结果如下:

在这里插入图片描述
温馨提醒:记得点停止哦,不然时间一长,电脑CPU会慢慢升高,会导致电脑变卡哦!


总结:

忘不了孙中山原配一句,我总不能阻止她奔向比我更好的人吧,下一句是,可我就是觉得除了我谁都配不上她!时间还是蛮快的,一转眼,培训就要结束啦,虽学的不是很多,不过学了个大慨,很多事终归还是要靠自己!!继续加油吧,骚年!!!


每日一言:

将来会怎么样,我根本不会考虑。要是成天想着今天,愁着明天,生活还有什么意思呢?就是事情遭到无可再遭的地步,我想总还是有路可走的。

持续更新中…

记得关注我哦

  • 53
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 112
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值