文件的基本操作

article/2024/9/17 3:16:41

目录

  • 一、基本的文件操作
  • 二、绝对路径和相对路径
  • 三、文件的三种打开方式
  • 四、with 管理上下文
  • 五、文件高级应用.py
  • 六、修改文件内容的两种方式:

一、基本的文件操作

1.什么是文件?

文件是操作系统提供的虚拟的单位,有了文件我们可以读取数据,没有文件的话应该去硬盘上扣动机械手臂后寻找数据。

文件的核心是:读和写

2.为什么要有文件?

内存无法永久保存数据,想要永久保存数据都需要把文件保存到硬盘中,而操作文件就可以实现对硬件的操作。

3.如何使用文件?

  • 打开文件()

  • 读写数据

  • 保存

  • 关闭文件

    使用Python写一个小程序控制文件#print(fr.read())                    #read一次性读取所有数据#fr.close()              #不仅删除了变量名 f, 并且也关闭了文件,这个时候文件对于操作系统来讲是关闭状态的
  • 打开文件的那一瞬间是在操作硬盘和内存

  • python3能操控硬盘和内存吗?一定不能,因为他是应用程序。

  • 你看到的Python3打开文件并操控,都是基于操作系统的。

  • 然后你只是使用了 del f ,只是在删除f这个变量名的内存占用。但是我们从来都没有告诉操作系统关闭文件

  • 所以我们必须使用f.close()关闭文件

二、绝对路径和相对路径

绝对路径:从根目录开始,一直到需要的文件路径

相对路径:从当前文件夹开始,到需要的文件路径,只需要输入文件路径,要打开的文件和运行的py文件必须得在一个文件夹下

三、文件的三种打开方式

文件操作的基础模式有三种(默认的操作模式为r模式)

# mode='r', r模式为read,只读模式,只能读不能写,文件不存在时报错。
# mode='w',  w模式为write,只写,清空文件在写入
# mode='a',   a模式为append,追加,在后面追加写入文件

文件读写内容的格式有两种(默认的读写内容的模式为b模式):

t模式为text
b模式为bytes

需要注意的是:t、b这两种模式均不能单独使用,都需要与r/w/a之一连用。

#mode='rb',  #打开的bytes类型,二进制#0101000011
fr=open(r'D:\Python视频\Python9期视频\day 09\test.txt',mode='rb')    #默认r=rt
print(fr)
bytes_data=fr.read()
print(bytes_data)

##r , r告诉接下来的字符串,里面所有的特殊字符都变得无意义

##b表示,写的字符串为二进制,在打印时候不需要使用终端的编码处理,直接打印原生的二进制即可。

#r/w/a能单独使用。

四、with 管理上下文

之前使用open()方法操作文件,但是open打开文件文件后我们还需要手动释放文件对操作系统的占用。

Python提供的上下文管理工具更方便-------with open(),不仅提供自动释放操作系统占用的方法,并且with open可以使用逗号分隔,一次性打开多个文件,实现文件的快速拷贝。

#with open(文件路径,打开模式(rt/wt/at/wb/ab),编码格式) as 变量名:

#变量名.read/wite

with open('test.txt','r',encoding='utf8') as fr:data=fr.read()print(data)

五、文件高级应用.py

  • r+t 可读、可写
  • w+t 可写、可读
  • a+t 可追加、可读

r只读/w只写/a追加,可读可写(不推荐使用),r+,w+,a+

# 指针(不要使用指针)
with open('test.txt','rt+',encoding='utf8') as fa:# 3个字节,# fa.readline()fa.seek(5, 0)  # 字节算的# fa.seek(3, 1)print(fa.tell())  # 告诉你光标当前的位置print(fa.read(3))  # 光标后的字符个数,一个中文1个字符,3个字节;一个英文一个字符,一个字节fa.truncate(3) # 如果它有参数,则光标会跳到指定字节数后,然后把后面的文件全部清空fa.flush()
nick 中文 245234234中文45234234  # 没有seek(3,0)  # 0表示文件头
nic中文34234  # 有seek(3,0),seek(3,0)
nick 245234234中文 # 有seek(0,2)  # 2表示文件末尾
nick 2a5234234  # 有seek(3,1),seek(3,1) # 1表示当前位置,但是必须得以二进制的形式打开
'''# 文件的写入没有插入一说,只有覆盖
文件内指针移动:

假设我们需要在文件内容中间的某一行增加内容,如果使用基础的r/w/a模式实现是非常困难的,因此我们需要对文件内的指针进行移动。

硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖新内容

  1. seek(offset,whence): offset代表文件指针的偏移量,单位是字节

  2. ell(): 每次统计都是从文件开头到当前指针所在位置
  3. read(n): 只有在模式下的read(n),n代表的是字符个数,除此之外,其他但凡涉及文件指针的都是字节个数
  4. runcate(n): truncate(n)是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate()要在r+或a或a+等模式下测试效果。它的参照物永远是文件头。并且truncate()不加参数,相当于清空文件。

六、修改文件内容的两种方式:

文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式

方式一:一次性读所有

将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)

方式二:逐行读取

将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件。

文件的拷贝

文件不能插入,但是有需求要修改文件,插入。

总结:

  • qq想修改这个程序,微信也想修改这个程序,两者都已经读取文件成功,都拿到了‘tank handsome'

  • qq想修改’tank handsome'中的‘h’为‘a’,微信想把‘h'修改为'b’,这两个修改一定有先后顺序,假如qq先修改了,那么‘h’已经变成了‘a’,微信就找不到'h'了,报错。

  • qq想修改’tank handsome'中的‘h’为‘a’,微信想把‘h'修改为'b’,所以给qq一份拷贝文件,给微信一份拷贝文件,让他们各自修改,修改成功后,删除原文件,修改替换后的文件名为原文件。

    减少了内存的占用

    w在清空文件,而不是wite清空文件

    文件只需要记住
  • with open(filename,mode,encoding) as file: file+操作

  • rt/rb/wt/at

  • 文件的复制

转载于:https://www.cnblogs.com/gongjingyun123--/p/10939722.html


http://chatgpt.dhexx.cn/article/3nhDjoo9.shtml

相关文章

最好懂的python文件读写(详解)

目录 1、文件读写的流程   2、文件读写的几种常见模式(你不清楚的知识点)   3、read、readline、readlines的区别   4、对于一个10G的大文件,怎么高效的查看文件中的内容呢? 1、文件读写的流程 1)类比windows中手动操作txt文档&#…

C/C++文件读写(最全方法,多种实现)

文章目录 前言一、文件处理过程二、C处理文件1.打开文件2.读文件4.写文件5.关闭文件 三、C处理文件四、Windows API处理文件五、ATL处理文件总结 C/C实战入门到精通 https://blog.csdn.net/weixin_50964512/article/details/125710864 前言 本章主要详解C/C对文件的所有常…

FTP如何设置用户名密码

1、新建FTP站点,指定名称和物理路径 2、“身份验证”选择 基本,“允许访问”选择 指定用户,下面文本框中输入“本地用户和组”中现有的一个用户名即可。 注意:只能是“本地用户和组”中的用户,自己指定的其他用户名无…

win10系统连接服务器的用户名多少,win10 ftp服务器 用户名和密码

win10 ftp服务器 用户名和密码 内容精选 换一换 CDM支持周期性自动将新增文件上传到OBS,不需要写代码,也不需要用户频繁手动上传即可使用OBS的海量存储能力进行文件备份。这里以CDM周期性备份FTP的文件到OBS为例进行介绍。例如:FTP服务器的to…

Windows下如何搭建FTP服务并且设置其用户名和密码

1. 为了设置用户名和密码,要做一些准备工作: 打开 右键 计算机-》管理-》本地用户和组 右键之后点击新用户: 设置你自己的用户名和密码,这个就是之后给ftp服务用的。 2. 控制面板-》程序和功能-》打开或关闭Windows功能&am…

win10 FTP服务器设置用户名和密码

设置FTP用户及密码之前,请先给电脑添加新的本地账户以及搭建本地ftp服务器。FTP用户及密码就是win10的账户名和密码。 win10添加新的本地账户:https://jingyan.baidu.com/article/b0b63dbf3b38d54a49307046.html 搭建本地FTP服务器:https://blog.csdn.net/feifei_Tang/arti…

用Metasploit破解ftp用户名和密码

Metasploit是渗透测试人员在世界各地的资源和工具,比较常用的命令: msfconsole——直接进入 show options——查看 set RHOSTS ip地址/段 use 路径 需要在虚拟机的2003版本下创建FTP服务 将字典密码文件加入到虚拟机的系统里边 命令 ——rz 查看ftp是…

win7修改ftp服务器密码,win7ftp服务器设置用户名密码设置

win7ftp服务器设置用户名密码设置 内容精选 换一换 登录云服务器的用户名和密码:Windows操作系统用户名:AdministratorLinux操作系统用户名:root如忘记登录密码,可通过 “ 重置密码 ” 功能设置新密码。 代码迁移工具进行代码迁移…

linux下的ftp登陆用户名和密码,Linux下实现ftp普通账号和vip账号限速

ftp工作流程: ftp回话包含了两个通道,控制通道和数据通道,ftp的工作有两种模式,一种是主动模式,一种是被动模式,以ftpserver为参照物,主动模式,服务器主动连接客户端传输,被动模式,等待客户端的连接 主动模式: ftp客户端连接到ftp服务器的21端口,发送用户名和密码,…

抓取FTP登录名和密码

R1配置IP地址 <H3C>system-view [H3C]sysname R1 [R1]int g0/0 [R1-GigabitEthernet0/0]ip address 1.1.1.1 24 R2配置IP地址 <H3C>system-view [H3C]sysname R2 [R1]int g0/1 [R2-GigabitEthernet0/0]ip address 1.1.1.2 24 R2开启FTP服务&#xff0c;创建用…

CentOS 7如何找回用户名和密码

当我们在使用CentOS 7系统时忘记了账号密码怎么办呢&#xff1f; 第一步 进入选择系统界面 选择你的操作系统 然后按e键进入 第二步 进入界面后添加代码并执行 如图所示 在UTF-8后面添加 init/bin/sh这段代码 之后按cltr x 执行进入命令行界面 第三步 如何查看你的用户名和…

用户名密码方式访问 FTP

前言 用户名密码方式访问 FTP。 简介 场景&#xff1a;ftp 和 www web 服务器相结合 公司内部现在有一台 FTP 和 WEB 服务器&#xff0c;FTP 的功能主要用于维护公司的网站内容&#xff0c;包括上传文件、创建目录、更新网页等等。公司现有两个部门负责维护任务&#xff0c…

Windows10系统怎么在电脑上搭建ftp服务器?ftp用户名密码忘了怎么查看?

1.从程序面板中选择:打开或关闭windows功能,勾选下面标红选框点击确定 2.我的电脑,鼠标右击选择【管理】,点击服务和应用程序,intent information services, 3.点击【网站】鼠标右击选择添加FTP站点管理,站点名称自己定义,物理路径自定义,点击下一步 4选择自己的IP

用户自己修改ftp服务器默认密码是什么,ftp服务器 改默认用户名和密码

ftp服务器 改默认用户名和密码 内容精选 换一换 支持2.2.T1、2.2.T2、2.2.T2.SPC100、2.2.T2.SPC200、2.2.T2.SPC300版本升级到2.2.T3版本。支持2.2.T3升级到2.2.1版本。支持2.2.T3、2.2.1升级到2.2.T4版本。支持2.2.T4、2.2.1升级到2.3.T10版本。联网状态下,系统会自动下载鲲…

实验二 简单网络命令和wireshark捕获FTP用户名密码

实验二 简单网络命令和wireshark捕获FTP用户名密码 预备知识 Wireshark&#xff08;前称Ethereal&#xff09;是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包&#xff0c;并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口&#xff0c;直接…

FTP-用户名密码明文传输

一、实验原理 FTP协议用于用户认证的过程中&#xff0c;客户端与服务器是通过明文进行交互信息的。 二、实验环境 目标主机&#xff1a;Win2K3 192.168.20.145 攻击主机&#xff1a;Kali2 192.168.20.133 三、实验过程 在Kali2上开启wireshark软件&#xff0c;抓取FTP数据…

python ftplib模块 爆破ftp登录用户名和密码

1.连接ftp服务器 import ftplib ftp ftplib.FTP() ftp.connect(192.168.50.130, 21) ftp.login("anonymous","") #用户为匿名&#xff0c;密码为空 list ftp.retrlines(list) #此时可以获得当前ftp目录下的所有文件的信息 print(list)运行结果&a…

FTP-用户名密码暴力破解

一、实验环境 目标主机&#xff1a;Win2K3 192.168.20.145 攻击主机&#xff1a;Kali2 192.168.20.133 二、实验过程 创建一个名为admin1的administrators的用户 使用medusa暴力破解ftp密码 -h&#xff1a;靶机的IP地址 -u&#xff1a;靶机用户名 -P&#x…

搭建ftp并设置用户名和密码

第一步&#xff1a;启用 IIS 服务 步骤一 : 打开控制面板 点击 "开始" &#xff08;或者按键盘上的微软徽标键&#xff0c;通常在左侧 Ctrl 键和 Alt 键之间&#xff09;&#xff0c;在打开的 "开始菜单" 中&#xff0c;点击 "控制面板"&#x…

WIN10 配置FTP服务器 加 用户名密码,本地用FileZila访问

步骤分两部&#xff1a;创建FTP服务器、设置用户名密码 一 创建FTP服务器&#xff1a; #1.控制面板>程序>启用或关闭Windows功能>… (控制面板可在 桌面右键>个性化>主题>桌面图标设置>勾选控制面板>确定) #2.搜索IIS打开IIS #3.右击网站添加FTP站点…