当前位置: 首页 > 编程日记 > 正文

Python文件的使用

本章导言

什么是数据格式化
在这里插入图片描述

前言:
-学完本章,看待数据会有一种规范/格式化的视角
-方法论:从Python角度理解文件和数据表示
-实践能力:学会编写带有文件输入输出的程序

1. 文件的使用

文件的类型
-文件是数据的抽象和集合,可理解为存储在辅助存储器上的数据序列,是数据存储的一种形式。

展现形态:文本文件和二进制文件(本质上,存储都以二进制形式)

-文本文件:由单一特定编码组成的文件,如UTF-8编码
由于存在编码,文本文件也被看成是存储着的长字符串。
举例: .txt .py

-二进制文件:直接由比特0和1组成,没有统一字符编码
01根据预定义格式进行结构组织
举例: .png .avi

#文本形式打开文件
bf1 = open("E:\code\python\821\File.txt","rt",encoding="utf-8")
print(bf1.readline())
bf1.close()
#二进制形式打开文件
bf2 = open("E:\code\python\821\File.txt","rb")
print(bf2.readline())
bf2.close()

输出
在这里插入图片描述

2. 文件的打开和关闭

文件处理的步骤:打开-操作-关闭

-打开:让文件从存储状态转化为占用状态 a = open( , )
-关闭:让文件从占用状态转化为打开状态 a.close( )

2.1 文件的打开

<变量名> = open(<文件名>,<打开模式>)
参数1-文件的路径和名称(源文件同目录可省路径)
参数2-文本还是二进制,读还是写
打开之后,文件用一个叫做文件句柄的抽象变量来表示。
注:路径中一般用斜杠/或双反斜杠\来替代反斜杠\(python中的转义符)

-文件打开模式(7种)
读写相关 r/w/x/a 打开文件方式相关b/t
在这里插入图片描述


如果不给任何参数,默认为“rt” -文本形式,只读模式
f = open(“f.txt”,”w”) -文本形式,覆盖写模式
f = open(“f.txt”,”a+”) -文本形式,追加写模式,同时文件可读
f = open(“f.txt”,”b”) -二进制形式,只读模式

2.2 文件关闭
<变量名>.close()

如果不关闭会怎样?
程序运行过程中文件一直是打开状态,程序退出时会被解释器关闭。

3. 文件内容的读取

-读文件函数
① a.read(size=-1) -读入全部内容,如果给出参数,读入前size长度

f = open("E:/code/python/821/File.txt","rt",encoding="utf-8")
s = f.read(2)
print(s)

输出
"中

② a.readline(size=-1) -读入一行内容,如果给出参数,读入该行前size长度

③ a.readlines(hint) -读入文件的所有行,以每行(视为字符串)为元素形成列表,如果给出参数,读入前hint行

应用
(1) 文件的全文本操作,即遍历文件的全部信息
方法一:

fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
txt = fo.read()
#对全文txt进行处理
fo.close()

特点:一次读入,统一处理
弊端:文本文件体量过大,会耗费很多资源

方法二:

fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
txt = fo.read(2)
while txt != "":#对txt进行处理txt = fo.read(2)
fo.close()

特点:按数量读入,逐步处理

(2) 逐行遍历文件
方法一:
将所有文件的行一次性地读入内存

fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
for line in fo.readlines():print(line)
fo.close()

方法二:

fname = input("请输入要打开的文件名称:")
fo = open(fname,"r")
for line in fo:print(line)
fo.close()

4. 将数据写入文件

2个方法和1个辅助函数
在这里插入图片描述

文件操作指针会随着每次函数调用的变化而变化
在这里插入图片描述

fo = open("E:\code\python\821\output.txt","w+")
ls = ["中国","法国","美国"]
fo.writelines(ls)
for line in fo:print(line)
fo.close()

没有任何输出
修改:在fo.writelines(ls)后面加 fo.seek(0)
新输出
中国法国美国

出处:北理工Python慕课

相关文章:

datagridview 点击列标题排序

开发winform中&#xff0c;平时经常用到数据列表&#xff0c;我们大多选用datagridview&#xff0c;但是此控件本身没有排序的功能。参阅网上资料。留下标记&#xff0c;以后备用。 datagridview的数据显示一般是通过数据绑定来实现&#xff0c; 即&#xff1a;this.datagridvi…

围绕圆心形旋转

2019独角兽企业重金招聘Python工程师标准>>> 实现了围绕圆心旋转功能 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Roation : MonoBehaviour {public float range 10;void Update () {float x Mathf.Sin(Mathf.…

【组队学习】【34期】阿里云天池在线编程训练营

阿里云天池在线编程训练营 航路开辟者&#xff1a;陈信达、杨世超、赵子一、马燕鹏领航员&#xff1a;武帅、初晓宇、叶前坤、邱广坤、朱松青航海士&#xff1a;宁彦吉、肖桐、汪超、陈信达、杨世超、赵子一、武帅、初晓宇、叶前坤、邱广坤、朱松青、马燕鹏 基本信息 学习平…

Python一维二维数据的格式化和处理

本章导言 什么是数据格式化 前言&#xff1a; -学完本章&#xff0c;看待数据会有一种规范/格式化的视角 -方法论:从Python角度理解文件和数据表示 -实践能力:学会编写带有文件输入输出的程序 1. 数据组织的维度 维度&#xff1a;一组数据的组织形式-线性还是二维或更高维…

让你的网站提速:图片优化网站推荐

页面的加载时间是每一个设计师都担心的数据&#xff0c;或者至少是每个设计师都应该担心的问题。图片的大小肯定是一个需要留意的问题。这就是为什么在这里写了几个有助于优化页面中的图片的小技巧&#xff0c;这些小技巧将有助于大家解决这个问题&#xff0c;这些小技巧也可以…

JAVA对图片的任意角度旋转,以及镜像操作

package relevantTest;/* * 该代码实现了对图像的水平镜像变换&#xff0c;垂直镜像变换&#xff0c;任意角度旋转&#xff0c;jtf的实时监控&#xff0c;以及对图像的缩放变换&#xff0c;以及按钮的若隐若现效果。 * 在对图像进行任意角度旋转时最好是在原始图片未进行任何操…

【组队学习】【34期】百度飞桨AI达人创造营

百度飞桨AI达人创造营 航路开辟者&#xff1a;百度飞桨领航员&#xff1a;六一航海士&#xff1a;阿水、颜鑫、宋泽山、刘洋、张文恺 基本信息 内容属性&#xff1a;合作课程练习平台&#xff1a;https://aistudio.baidu.com/aistudio/course/introduce/25259?ad-frompdg-1…

安装Python第三方库的三个方法

方法一: (cmd命令行) pip 方法【主要方法&#xff0c;适用于99%的情况】【依赖网络状况】 在命令行输入pip -h 可查看该命令帮助信息 常用pip命令 ① pip install <第三方库名> 安装指定第三方库 参数 -U :update对已经安装的进行版本更新 ② pip uninstall <第三方…

java 基础---继承

继承 一&#xff0c;概述 a) 使用extends关键字可以让一个类继承另一个类&#xff0c;继承的类为子类&#xff0c;被继承的类是父类&#xff0c;子类会自动继承父类的所有方法和属性。 b) 继承使得类和类之间产生了关系 c) 子类可以使用super调用父类成员…

建立CentOS 6.9 的Yum本地源

1、建立一个本地Yum的软件仓库1mkdir /media/cdrom2、把CentOS6.9光盘装载到/media/cdrom1mount /dev/cdrom /media/cdrom3、安装createrepo1 rpm -ivh /media/cdrom/Packages/createrepo-[按tab键] deltarpm-[按tab键] python-deltarpm-[按tab键] createrepo-0.9.9-26.…

【组队学习】【34期】零基础学python编程思维

零基础学python编程思维 航路开辟者&#xff1a;邓林权领航员&#xff1a;沈一航海士&#xff1a;覃嘉俊、马子阳、左凯文 基本信息 开源内容&#xff1a;https://linklearner.com/datawhale-homepage/index.html#/learn/detail/6内容属性&#xff1a;公测课程内容说明&…

Python wordcloud库使用说明

1. 介绍 wordcloud是优秀的词云展示第三方库 -词云以词语为基本单位&#xff0c;更加直观和艺术地展示文本 通过词云&#xff0c;我们可以快速提取大段文本的重要信息 2. 安装 (cmd命令行) pip install wordcloud 3. 使用 w wordcloud.WordCloud()代表一个文本对应的词云…

resin-pro-4.0.34 服務器在windows环境下的配置

resin-pro-4.0.34 服務器在windows环境下的配置(轉載请注明作者:icelong) 到caucho網站上http://www.caucho.com/download/下載resin-pro-4.0.34 Windows下載zip版&#xff0c;Linux下載tgz版 Install JDK 1.4 or later. On Unix, set the JAVA_HOME variable or link /usr/jav…

【组队学习】【34期】Python(一级)

Python&#xff08;一级&#xff09; 航路开辟者&#xff1a;王思齐、马燕鹏领航员&#xff1a;马燕鹏航海士&#xff1a;马燕鹏 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/team-learning-program/tree/master/PythonTest内容属性&#xff1a;公测课…

matlab处理txt文件数据

read_txtfile.,m clear close all clc %load函数一般将用来导入纯数字的文件&#xff0c;可以是文本格式的文件或者是matlab保存的mat格式的文件 positionload(坐标点.txt); %将.txt数据读入到matlab工作空间[m,n]size(position); %获得数据矩阵的大小 j1; sumx0; sumy0; …

Python os库的使用

1. 基本介绍 os提供通用的、基本的操作系统交互功能 os库是Python的标准库&#xff0c;提供几百个处理函数 常用有路径操作、进程管理、环境参数等几类 路径操作&#xff1a;os.path子库&#xff0c;处理文件路径及信息 进程管理&#xff1a;启动系统中其他程序 环境参数&…

(U3D)Time的使用

Time类包含了一个重要的类变量deltaTime&#xff0c;它表示距上一次调用Update或FixedUpdate所用的时间。 因此通过它可以让游戏对象按照一个常速进行旋转&#xff0c;而不是依赖于它的帧频&#xff1a; function Update() { tranform.Rotate(0, 5 * Time.deltaTime, 0); } …

【组队学习】【34期】Scratch(二级)

Scratch&#xff08;二级&#xff09; 航路开辟者&#xff1a;王思齐、马燕鹏领航员&#xff1a;马燕鹏航海士&#xff1a;马燕鹏 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/team-learning-program/tree/master/Scratch内容属性&#xff1a;公测课程…

文件操作示例脚本 tcl

linux 下&#xff0c;经常会对用到文件操作&#xff0c;下面是一个用 tcl 写的文件操作示例脚本&#xff1a; 其中 set f01 [open "fix.tcl" w] 命令表示 打开或者新建一个文件“fix.tcl”&#xff0c;并将其 file ID 设置为 f01&#xff0c;后续就以这个 file ID 来…

Python 第三方库自动安装脚本

需求&#xff1a;批量安装第三方库需要人工干预&#xff0c;能否自动安装&#xff1f; 现假设我们要安装以下库 #BatchInstall.py import os libs {"numpy","matplotlib","pillow","sklearn","requests",\ "jie…

ios 如何改变UISegmentedControl文本的字体大小?

UIFont *Boldfont [UIFont boldSystemFontOfSize:16.0f]; NSDictionary *attributes [NSDictionary dictionaryWithObject:Boldfont forKey:UITextAttributeFont]; [segment setTitleTextAttributes:attributes forState:UIControlStateNormal]; 转载于:https://www.cnblog…

CDN全站加速助力企业云上升级

[2018云栖大会南京分会飞天技术汇专场&#xff0c;阿里巴巴高级技术专家魏晋带来题CDN全站加速助力企业云上升级的演讲。主要内容是结合实际客观案例详细解读全战加速产品如何对动静态业务进行的加速&#xff0c;结合安全WAF等其他运营产品&#xff0c;对如何构建适合大部分业务…

【组队学习】一月微信图文索引

一月微信图文索引 一、组队学习相关 周报&#xff1a; 【新周报&#xff08;049&#xff09;】Datawhale组队学习Datawhale组队学习周报&#xff08;第048周&#xff09;Datawhale组队学习周报&#xff08;第047周&#xff09;Datawhale组队学习周报&#xff08;第046周&…

CSP 2019-09-1 小明种苹果 Python实现+详解

试题 代码 # N,M分别表示树的棵树和疏果轮数 N,M [int(i) for i in input().split()]leftTrees 0#最后所有树树上的苹果总数 reduceMaxIndex 0#疏果个数最多的苹果编号 reduceMaxSum 0#上面那棵树的个数reduceMaxSum 0 reduceMaxIndex 0 leftTrees 0 for i in range(N)…

Easyui 让Window弹出居中与最大化后居中

easyui1.3.2版本,window的弹出不会居中了。而dialog是会居中的,我们必须为为window的open事件做扩展 代码如下&#xff1a;只要加入以下代码即可.如果你是看了MVC项目系列的&#xff0c;把他放到jquery.easyui.plus.js里面就可以了 //让window居中 var easyuiPanelOnOpen func…

电子学会青少年编程等级考试Python一级题目解析11

Python一级题目解析 题目 &#xff08;1&#xff09;下列哪个不是Python的保留字&#xff1f;&#xff08; &#xff09;【2020.06】 A. ifB. orC. doD. for &#xff08;2&#xff09;下面哪一个不是Python的保留字&#xff1f;&#xff08; &#xff09;【2021.06】 A. …

单例和多例的区别

为什么80%的码农都做不了架构师&#xff1f;>>> 需要明白以下几个问题&#xff1a; 1. 什么是单例多例&#xff1b;2. 如何产生单例多例&#xff1b;3. 为什么要用单例多例4. 什么时候用单例&#xff0c;什么时候用多例&#xff1b; 1. 什么是单例多例: 单例&#…

CSP 201909-2 小明种苹果(续)Python实现+详解

试题 代码 # N表示苹果树的棵树 N int(input()) T, D, E 0, 0, 0 # 所有树剩果总数 # 发生苹果掉落的苹果树总数 # 相邻三棵树发生苹果掉落的组数 treeMatrix [] # 存放所有数的数果疏果信息 for i in range(N):treeRow list(map(int, input().split()))treeRow treeRow…

hdu1176

hdu1176 f(x,t)max{ f(x-1,t-1) , f(x,t-1) , f(x1,t-1) }; left(5-t)>0?(5-t):0; right(5t)<10?(5t):10; for left to right <-- i resmax{f(maxt,i)}; #include <stdio.h> #include <string.h> #define mmax(x,y,z) (x)>((y)>(z)?(y):(z))?(…

spring体系

2019独角兽企业重金招聘Python工程师标准>>> 一、spring从体系架构上分为 1. 基本组件框架组合&#xff1a;Spring Framework 2.专项领域应用组件&#xff1a;Spring Portfolio 这个Spring Portfolio主要应用满足于特定的的应用场合&#xff1a;包括了spring Securi…