首页 > 编程语言 >python中文件的操作

python中文件的操作

时间:2023-09-04 18:56:55浏览次数:38  
标签:文件 utf encoding python print 操作 txt open

文件的基本操作

1.我们目前能够操作哪些类型的文件:
    .txt 没有后缀名的文件
   """ 
    将来学了openpyxl模块将支持操作:word、Excel、ppt
   """
2.如何操作文件
"""
	三步法:
		1.打开文件(关键字 open)
		2.读或者写
		3.关闭文件
"""
文件的路径:
	相对路径
    绝对路径
    '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/wolongnp/p/17677832.html

相关文章

  • docker fs 文件系统
    sudodockerrun--nameaaa -it--rmbusyboxtop 会启动这个container去另一个terminal上进入这个容器,执行 echo123ddddd>>/aaaaaa,就是生成个文件去另一个terminal上主机上执行 >sudofind/-nameaaaaaa/applications/var_lib_docker/overlay2/9a36827......
  • 【python自动化】pytest系列(下)
    pytest系列文章一共有四篇,本文为第三篇。公众号:梦无矶的测试开发之路,回复pytest可以领取对应资料本章知识点文章目录Pytest之fixture(1)fixture实现前/后置(2)fixture数据传递(3)fixture全局共享机制conftest.py(4)fixture嵌套Pytest之fixture示列代码使用装饰器的方式,scope参数是代表指......
  • 【python自动化】pytest系列(完结)
    pytest系列文章一共有四篇,本文为第四篇完结篇。应各位小伙伴留言,希望可以把这几篇pytest文章进行汇总。公众号:梦无矶的测试开发之路,回复pytest可以领取对应汇总资料本章知识点文章目录Pytest高阶用法(1)参数化(2)pytest.ini①marks标记②addopts配置(3)pytest.mark.相关1、直接跳过执......
  • Lnton羚通视频分析算法平台OpenCV-Python 教程 Hough直线变换
    OpenCVPythonHough直线变换霍夫直线变换(HoughTransform)是一种在图像中检测直线的技术。它可以帮助我们从图像中鲜明地检测出直线段,并且对于噪声和不完整的线段也有较好的鲁棒性。霍夫直线变换的基本思想是将直线表示为参数空间中的曲线,通过统计参数空间中的交点来检测直线。以下......
  • python 计算两个日期之间的时间差,并将其转换为秒数
    python计算两个日期之间的时间差,并将其转换为秒数 fromdatetimeimportdatetime,timedelta#创建两个日期对象date1=datetime(2023,7,2)date2=datetime(2023,7,4)#计算时间差,并转换为秒数delta_seconds=int(timedelta.total_seconds(date2-date1))p......
  • linux创建文件夹权限不够怎么办
    如果您在Linux上创建文件夹时遇到权限不够的问题,可以尝试以下方法:1.使用sudo命令:在命令前加上sudo,例如sudomkdirfoldername,这将使用管理员权限创建文件夹。2.更改文件夹的权限:使用chmod命令更改文件夹的权限,例如chmod777foldername,这将赋予文件夹所有用户读、写和执行的权限......
  • linux查看文件夹命令有哪些
    linux中查看文件夹的命令有:1.cat命令,连接文件并打印到标准输出设备上;2.more命令,将文件以一页一页的形式显示;3.head命令,显示指定文件的前若干行;4.tail命令,显示指定文件的末尾若干行;5.ls命令,列出目录文件;6.less命令,浏览文件内容;7.tac命令,反向显示文本内容;8.nl命令,计算文件行号;linux中......
  • Python接口编程:理解、设计和实现
    在当今的软件开发世界中,接口(API)是应用程序之间进行数据交换和通信的关键方式。这种通信可以在同一应用程序的各组件之间,也可以在完全不同的系统和平台之间进行。Python作为一种功能强大的编程语言,因其易用性和丰富的库而广泛用于开发接口。理解接口在计算机科学中,接口通常是一种定......
  • Python文件的基本操作
    Python文件的基本操作文件的基本操作文件的读写模式文件的读写操作相关的方法文件的操作模式文件的练习题文件的基本操作1.我们能够操作哪些类型的文件:.txt没有后缀名的文件#我们现在不能操作word、Excel、PPT等文件暂时不能够操作numpy、pandas等模......
  • python开发之微信机器人的二次开发
    简要描述:取消消息接收请求URL:http://域名地址/cancelHttpCallbackUrl请求方式:POST请求头Headers:Content-Type:application/json参数:参数名类型说明codestring1000成功,1001失败msgstring反馈信息成功返回示例{"message":"成功","code":"1000","data":......