首页 > 其他分享 >006 文件处理

006 文件处理

时间:2024-11-04 10:59:19浏览次数:3  
标签:文件 utf 操作系统 encoding 处理 006 txt open

 1 # 应用程序运行过程中产生的数据都是存放在内存中的,若想永久保存下来,必须存放在硬盘中
 2 # 应用程序操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念
 3 # 用户或者应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体操作
 4 # 有了文件的概念,我们无需考虑操作硬盘的细节,只需要关注文件操作即可
 5 
 6 # 打开文件,由应用程序向操作系统发起系统调用open(),操作系统打开该文件,对应一块硬盘空间,并返回一个文件对象赋值给一个变量f
 7 f = open('a.txt', 'r', encoding='utf-8')
 8 # 调用文件下的读/写方法,会自动转成硬盘的读/写操作
 9 data = f.read()
10 # 打印读出来的数据
11 print(data)
12 
13 # 向操作系统发起关闭文件的请求,回收系统资源
14 f.close()  # 回收变量操作系统打开的文件资源
15 del f  # 回收应用程序级
16 # print(f)
17 
18 # 资源回收和with上下文管理
19 # 打开一个文件包含两部分资源:应用程序的变量f和操作系统打开的文件。
20 # 在操作完毕一个文件时,必须把这两部分资源全部回收
21 # del f 一定要发生在f.close()之后,否则就会导致操作系统打开的文件无法关闭,白白
22 # 占用资源
23 
24 # python自动垃圾回收机制决定了我们无需考虑del f,这就要求我们在操作文笔文件后
25 # 一定要f.close(),虽然我们如此强调,但是大多数的人还是会忘记f.close()
26 # 考虑到这一点,python提供了with关键字来帮我们管理上下文
27 # 可用with打开多个文件,中间用,分隔就行
28 with open('a.txt', 'r', encoding='utf-8') as read_f, open('b.txt', 'w', encoding='utf-8') as write_f:
29     res = read_f.read()
30     write_f.write(res)
31 
32 # 指定操作文本文件的字符编码
33 
34 # 由操作系统打开文件,如果打开的是文本文件,则会涉及到字符编码问题,如果没有为open()指定编码,那么打开文本文件的默认编码很明显就是操作系统说了算
35 # 操作系统会用自己的默认编码去打开文件,在windows下默认是gbk,linux下默认是utf-8。
36 
37 # 要想保证不乱码,怎么存的就怎么取。
38 # pycharm默认存文件时以utf-8存的,所以取的时候也应该是utf-8,不然会乱码
39 with open('a.txt', 'r', encoding='gbk') as f:
40     print(f.read())  # 乱码
41 
42 with open('a.txt', 'r', encoding='utf-8') as f:
43     print(f.read())  # 正常展示
44 
45 # 文件的操作模式
46 # 控制文件读写操作的模式
47 # r(默认):只读
48 # w:只写
49 # a:只追加写
50 
51 # r模式的案例使用
52 # r模式当文件不存在时报错,当文件存在时文件内指针跳到文件开头
53 with open('a.txt', 'r', encoding='utf-8') as f:
54     res = f.read()
55     print(res)
56 # 哈哈哈哈哈哈
57 # 呵呵呵呵呵呵
58 
59 # 实现用户登录功能
60 inp_username = input('请输入你的姓名:').strip()
61 inp_password = input('请输入你的密码').strip()
62 
63 with open(r'property.txt', mode='r', encoding='utf-8') as f:
64     for line in f:
65         u, p = line.strip('\n').split(':')
66         if u == inp_username and p == inp_password:
67             print('{name}登录成功'.format(name=u))
68             break
69         else:
70             print('用户名或者密码错误,请重新输入')
71 # w模式的使用
72 # w只写模式:在文件不存在时创建空文档,文件存在时则清空文件,文件指针跑到文件开头
73 
74 with open('c.txt', 'w', encoding='utf-8') as f:
75     f.write('你好')
76     f.write('我好')
77     f.write('大家好好')
78     f.write('才是\n真的好')
79 
80 with open('c.txt', 'w', encoding='utf-8') as f:
81     f.write('哈哈哈')
82     f.write('呵呵呵')
83 
84 # 在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面。
85 # 如果重新以w模式打开写入,则会清空文件内容

 

标签:文件,utf,操作系统,encoding,处理,006,txt,open
From: https://www.cnblogs.com/li-ji-peng-niu-bi/p/18524738

相关文章

  • 数据流转的守护者:半导体行业文件摆渡系统的重要性!
    为了保护内部的核心数据,半导体行业一般会进行网络隔离建设,确保不同网络区域之间的数据安全性和隔离性,比如隔离成研发网、办公网、测试网等,但内部不同子网之间、内部与外部合作伙伴之间等均存在频繁的数据交换需求,因此需要文件摆渡系统实现内外网数据安全交互。半导体行业常用的......
  • cesium后处理的中浓度积分高度雾(下)
    一、回顾上一篇我们将了如何在后处理中获取世界坐标还有高程,还了解了两个简单的线性雾,从上一篇的线性高度雾我们可以发现,一旦相机不是大角度俯视,那么雾的表现就会失真,如果相机进入雾的范围则更假,因为雾气只是简单的贴在物体和地形上,并不会对整个视野造成影响。点击去往视频教......
  • 一.Linux文件基本属性
    前言:Linux系统是一个多用户系统,不同的用户处于不同的地位,也就是说具有不同的权限。为了安全,对于不同用户访问同一个文件,设置不同权限是很有必要的。一.文件的基本属性理解在Linux中,通常是这两个命令修改文件或目录所属用户与权限:chown:修改所属用户与组chmod:修改用户的权......
  • Windows 系统安装运行ZooKeeper时报:文件名、目录名或卷标语法不正确
    Windows系统安装运行ZooKeeper1.下载官方压缩包下载地址zookeeper-3.8.4,选择apache-zookeeper-3.8.4-bin.tar.gz下载2.解压到合适的位置,最好是纯英文目录修改conf目录下的zoo_sample.cfg为 zoo.cfg外 3.添加data目录并修改zoo.cfg文件 将原来的路径修改为dataDi......
  • FPGA图像处理实战:图像裁剪技术
    在图像处理领域,图像裁剪是一项基础且关键的技术,它允许我们从原始图像中裁剪出感兴趣的区域,同时丢弃不相关的部分。这种技术在人脸识别、目标跟踪、图像分割等多种应用场景中发挥着重要作用。随着FPGA(现场可编程门阵列)技术的快速发展,将图像裁剪算法部署到FPGA上已成为提高处理速度......
  • 使用Markdown编写适用于GitHub的README.md文件的目录结构
    文章目录@[toc]顶部1.使用`[TOC]`自动生成2.VSCode中的插件3.手搓目录目录相关资料本文相关代码一、概述1.1基本概念1.2两种处理模型(1)微批处理(2)持续处理1.3StructuredStreaming和SparkSQL、SparkStreaming关系二、编写StructuredStreaming程序的基本步骤三......
  • 自然语言处理进阶手册--藏头诗生成器
    藏头诗生成器诗词生成原理首先观察以下诗句,你觉得写得怎么样,有什么发现吗?‘深宫娥向秦人间’,‘度江水辽天帝自’,‘学士大征鞍马嘶’,‘习气秪鬻不回首’‘深坞帛头泷吏问’,‘度春水一望一相’,‘学养养子君一枝’,‘习不见一年一夜’没错,这是两首“七言绝句”......
  • 自然语言处理进阶手册--Seq2seq 和注意力机制
    Seq2seq和注意力机制Seq2seqSeq2seq是一种框架结构,它接受一个序列(单词、字母、图像特征等)并输出另一个序列,由编码和解码两部分构成。如在机器翻译任务中,一个序列指的是一系列的词,一个接一个地被处理编码,同样,输出的也是一系列单词,一个接一个地进行解码。具体地,编码器处......
  • mysql数据恢复--利用mysql二进制日志文件生成建表sql和数据恢复sql(文章末尾提供下载地
    ​ 近期误操作数据库,导致mysql表结构和数据都丢失了,为了恢复丢失的数据,自己写了个mysql数据库恢复软件。 ※※※※恢复原理(很简单)※※※※ 1.表结构恢复  使用ibd2sdi.exe工具,将mySql的二进制文件转换成txt;  分析txt文件内容,生成建表所用的create语句。 2.......