首页 > 编程语言 >Python文件的基本操作

Python文件的基本操作

时间:2023-09-04 17:23:36浏览次数:34  
标签:文件 utf encoding Python print 基本操作 txt open

Python文件的基本操作

  • 文件的基本操作
  • 文件的读写模式
  • 文件的读写操作相关的方法
  • 文件的操作模式
  • 文件的练习题

文件的基本操作

1. 我们能够操作哪些类型的文件:
    .txt 没有后缀名的文件
    # 我们现在不能操作word、Excel、PPT等文件暂时不能够操作
    numpy、pandas等模块可以操作
2. 如何操作文件
	"""
		三步法:
			1. 打开文件(open)
			2. 读或者写
			3. 关闭文件
	"""
# open('要操作的文件路径', '读写模式', '字符编码')   
文件的路径:
	相对路径
    绝对路径
    'D:\Python27\day10\a.txt'
    # 当路径中出现了字母和斜杠的组合会产生一些特殊的含义,所以我们应该给去掉:
    r'D:\Python27\day10\a.txt'
f= open(r'D:\Python27\day10\a.txt', 'r', encoding='utf-8')  # \n \t
# 返回的是文件句柄
print(f) # <_io.TextIOWrapper name='D:\\Python27\\day10\\a.txt' mode='r' encoding='utf-8'>

# 2. 读取文件
# helloworld
print(f.read()) # 类似于是文件的内置方法

# 3. 关闭文件
f.close()


'''第二种方式来操作文件'''
# with上下文管理器打开文件!
# as:起别名
# 它的特点就在于:能够自动关闭文件
with open('a.txt', 'r', encoding='utf-8') as f: # f=open('a.txt', 'r', encoding='utf-8')  f.close()
    print(f.read())

读写操作相关的方法

r(默认的):只读
w:只写
a:只追加写

r模式的使用

1. 只读模式
# 1. 读模式
"""当文件路径不存在的时候,会直接保存"""
# f = open('b.txt', 'r', encoding='utf-8') #  No such file or directory: 'b.txt'
# f = open('a.txt', 'r', encoding='utf-8') #  No such file or directory: 'b.txt'
# print(f.read())
# f.close()
#
# with open('a.txt', 'r', encoding='utf-8') as f:
#     print(f.read())

w模式的使用

# w只写模式: 在文件不存在时会创建空文档,文件存在会清空文件,文件指针跑到文件开头
with open('b.txt',mode='w',encoding='utf-8') as f:
    f.write('你好\n')
    f.write('我好\n') 
    f.write('大家好\n')
    f.write('111\n222\n333\n')
#强调:
# 1 在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面
# 2 如果重新以w模式打开文件,则会清空文件内容

a模式的使

# a只追加写模式: 在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾
 with open('c.txt',mode='a',encoding='utf-8') as f:
     f.write('44444\n')
     f.write('55555\n')
#强调 w 模式与 a 模式的异同:
# 1 相同点:在打开的文件不关闭的情况下,连续的写入,新写的内容总会跟在前写的内容之后
# 2 不同点:以 a 模式重新打开文件,不会清空原文件内容,会将文件指针直接移动到文件末尾,新写的内容永远写在最后

读写操作相关的方法

1. 读系列
	# 读系列
    with open('a.txt', 'r', encoding='utf-8') as f:
        # print(f.read()) # read方法是一次性读取文件中得所有数据
        # print(f.readline()) # helloworld1
        # print(f.readline()) # readline一次只读文件的一行内容
        # print(f.readlines()) # 一次性读取文件的所有内容,然后每一个内容作为列表的一个元素返回,返回的数据类型是:列表
        print(f.readable()) # able ation un multi ...	
2. 写系列
	# 写系列
	### 做后端程序员:最重要的是安全意识
	with open('a.txt', 'w', encoding='utf-8') as f:
        # f.write('jerry say hello ')
        # f.writelines(['hello\n', 'jerry\n', 'kevin\n', 'jason\n'])
        print(f.writable())
        print(f.readable())	

文件的读操作的优化


with open('a.txt', 'r', encoding='utf-8') as f:
    # print(f.read()) # 一次性读取文件的所有数据,并且光标在文件的末尾,如果在去读,就读不到了
    # print(f.read())
    # 文件句柄f是支持for循环的
    for line in f:
        # line: 就是文件的一行内容
        print(line)
    # 了解的方法:
    # f.flush()  # 把数据从内存中立刻刷到磁盘
    """
        当你读取的数据比较小的时候,其实是在缓冲区的,当数据量够多的时候,它会一定刷到磁盘
    """


"""
一次性读取文件的所有数据有什么问题:
    当数据比较多的时候,会出现内存溢出,这种情况是坚决不能出现的
    如何优化以上操作:
        一点一点的读取数据然后把数据赶紧刷到硬盘里
        
"""

文件的操作模式

1. 文本模式 
	t:text
	# r w a =====> rt wt at
	"""
		with open('userinfo.txt', 'r', encoding='utf-8') as f:
		文本模式默认就是操作字符串,文本
		特征:
			1. encoding参数必须指定
			2. 读取的所有的数据都是以字符串为单位的
			3. t模式只能够读取文本或者字符模式
	"""
2. 二进制模式
	b模式:binary
    with open('userinfo.txt', 'rb') as f:
    """
    	b模式中得b不能省略------------> rb wb ab
    	特征:
    		1. encoding='utf-8'参数不能够指定
    		2. 读取的数据全部以字节为单位
    		3. 二进制模式可以读取任意类型的文件
    """

标签:文件,utf,encoding,Python,print,基本操作,txt,open
From: https://www.cnblogs.com/zhangfanshixiaobai/p/17677609.html

相关文章

  • python开发之微信机器人的二次开发
    简要描述:取消消息接收请求URL:http://域名地址/cancelHttpCallbackUrl请求方式:POST请求头Headers:Content-Type:application/json参数:参数名类型说明codestring1000成功,1001失败msgstring反馈信息成功返回示例{"message":"成功","code":"1000","data":......
  • Python-Virtualenv虚拟环境
    一.为何需要之前我们安装python第三方库时,都是直接通过pipinstallxx的方式进行安装的,这样会使第三方库直接安装到Python系统环境中,同时默认安装的都是最新版本的第三方库 这样安装会存在一个问题:如果用Django1.10.x开发了一个网站,同时有一个用Django0.9开发的旧项目需要......
  • Windows python版本管理工具pyenv
    windows下的python多环境pyenv-win搭建安装pyenv-win在PowerShell中安装建议使用管理员身份打开PowerShellInvoke-WebRequest-UseBasicParsing-Uri"https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1"-OutFile"./insta......
  • Python——8days
    文件的基本操作文件的读写模式(只读,只写,只追写)文件读写操作相关的办法读取文件的优化操作(重要)单用户注册,单用户登录多用户注册,多用户登录文件的操作模式(文本,二进制我们能够操作哪些类型的文件:.txt没有后缀名的文件我们不能操作wordexcelppt等文件暂时不能够操作 numpypand......
  • [ 总结 ] Linux 下文件描述符
    1、概述:文件描述符是内核为了高效管理已被打开的文件所创建的索引。是一个非负整数,用于代指被打开的文件。所有通过I/O操作的系统调用都通过文件描述符。文件描述符用以表明每一个被进程所打开的文件和socket 2、文件描述符的限制:Linux下最大文件描述符的限制......
  • 前端小白Step2-package.json文件详解
    前文已讲过 package.json-------npm的配置文件,主要用于确定当前项目直接依赖的包版本的范围(例如:^1.0.0表示的是大于等于1.0.0小于2.0.0)只依赖package.json管理包会有两个缺点:    *.同一份package.json安装的依赖版本可能不同,如果依赖包有小版本更新并且引入了bug会导致......
  • 2.1 PE结构:文件映射进内存
    PE结构是Windows系统下最常用的可执行文件格式,理解PE文件格式不仅可以理解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,在任何一款操作系统中,可执行程序在被装入内存之前都是以文件的形式存放在磁盘中的,在早期DOS操作系统中,是以COM文件的格式存储的,该文......
  • 泛微E-Office文件上传漏洞复现(CVE-2023-2523&CVE-2023-2648)
    漏洞概述cve-2023-2523泛微e-office9.5版本,源文件App/Ajax/ajax.php?action=mobile_upload_save的一些未知功能存在问题。参数upload_quwan的操作导致不受限制的上传,未经身份验证的恶意攻击者通过上传恶意文件,从而获取目标服务器的控制权限。cve-2023-2648由于泛微e-off......
  • Subversion权限文件AuthzSVNAccessFile示例[摘]
    Subversion权限文件AuthzSVNAccessFile示例选择自digitking的Blog  在使用Subversion时,认证文件AuthzSVNAccessFile能控制每一个目录的权限,但讲解的文档较少,中文文档更少。下面通过实例讲解使用方法。环境Windows2003Server,局域网,域:domain.com.cnApache2.0.52Subversion......
  • Centos安装部署Python-3.7
    部署1.下载wgethttps://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz 2.安装依赖,同时安装一下Centos安装部署opensslyuminstalllibffi-developenssl-devel-yyuminstallxz-devel-yyuminstallpython-backports-lzma-y 3.修改文件tar-xfPython-3......