首页 > 编程语言 >python基础 - 文件的读写和yaml文件读取

python基础 - 文件的读写和yaml文件读取

时间:2024-05-24 23:40:21浏览次数:16  
标签:文件 filepath python yaml read print txt open

读取文件

读取文件用withopen(文件路径,读写模式)r读(默认值),w写,a追加写#读文件的几种方式:

1、read()返回文件内容,返回的是字符串

filepath = 'D:/note1.txt'

with open(filepath, 'r') as f:

print(f.read())

2、readLine()返回文件一行的内容,返回的是字符串

with open(filepath, 'r') as f:

print(f.read())

print(f.readline())

3、readlines()返回文件内容,返回的是个列表,元素中有换行符

with open(filepath, 'r') as f:

# print(f.readlines())

4、read().spLitlines()返回文件内容,返回的是个列表,元素中没有换行符

with open(filepath) as f:
print(f.read().splitlines())

绝对路径和相对路径

filepath1 = 'D:/202401auto/note1.txt' #绝对路径
filepath2='123/note1.txt' #相对路径
with open(filepath2) as f2:
print(f2.read())

文件写入

w清空写入#

filepath ='./note1.txt

with open(filepath,'w') as f:

f.write('abcdefg')

a追加写入

filepath ='./note1.txt'
with open(filepath,'a)as f:
f.write('dddddddd')
print(f.read())

print(f.read()) #w,a的模式,不支持读文件

同时读写文件

w+可以同时读写文件,找不到文件时新建,清空写入

filepath = './note4.txt'
with open(filepath, 'w+') as f:
f.write('abcdefg')#写入时,文件中的光标的位置在文件末尾,读取不到内容
print(f.tell())
f.seek(0)
print(f.tell())
print(f.read())

seek()

写入时,文件中的光标的位置在文件末尾,读取不到内容

使用seek()方法,移动光标的位置

seek(O)光标回到文件首位

seek(1)光标回到文件首位之后向右偏移1位

a+可以同时读写文件,找不到文件时新建,追加写入

filepath ='./note4.txt'
with open(filepath,'a+') as f:
f.write(ccccccccc)#写入时,文件中的光标的位置在文件末尾,读取不到内容
print(f.tell())
f.seek(0)
print(f.tell())
print(f.read())

r+可以同时读写文件,找不到文件时报错,覆盖写入

filepath = './note3.txt

with open(filepath, 'r+') as f:

f.write('abcdefg')#会报找不到文件的错误

覆盖

filepath = './note5.txt
with open(filepath, 'r+') as f3:
f3.write('A')
f3.seek(0)
print(f3.read())
filepath ='./note5.txt'
with open(filepath,'r+',encoding='utf-8') as f3:
f3.write('我')
f3.seek(0)
print(f3.read())

编码问题最好不要用中文

filepath ='D:/note2.txt" #文件路径最好是复制,不要手敲
with open(filepath, encoding='utf-8') as f: #编码方式要与文件适配,有utf-8;gbk等方式
print(f.read())

yaml文件
yaml是一种用于写配置文件的语言非常简洁和强大
YAML的意思是YetAnotherMarkupLanguage仍是一种标记语言
文件扩展名一般是yml或.yaml

标签:文件,filepath,python,yaml,read,print,txt,open
From: https://www.cnblogs.com/running-snail-12345/p/18211810

相关文章

  • 调试python项目
    对于开源项目,通常需要调试来掌握细节。调试的方法有很多,pdb,IDE调试等等。对于从命令行直接启动的项目,首先需要找到项目的入口,以open-interpreter为例其中,--os模式需要在命令行中输入interpreter--os。这里的interpreter实际上是一个可执行文件interpreter.exe。以这种方式运......
  • linux学习笔记---系统时间和文件类命令
    1、主机的系统时间配置1)查看主机系统时间datedate'+%Y-%m-%d'date'+%Y-%m-%d:%H:%M:%S'2)更改(设置)系统时间date-sdate-s'2023-12-1212:12:12'3)如何将时间更改回来?方法一:Linux硬件的时间的设置hwclock设置系统硬件时间:hwclock--set--date'2024052......
  • Python常用术语
    在学习和使用Python编程语言时,会遇到许多常用术语。下面是一些Python编程中常见的术语及其简要解释:基本概念变量(Variable):用于存储数据的命名位置。变量可以存储不同类型的数据,如整数、字符串、列表等。数据类型(DataType):指变量可以存储的数据的类型。Python中的基本......
  • Python3 笔记:sort() 和 sorted() 的区别
    1、sort()可以对列表中的元素进行排序,会改变原列表,之前的顺序不复存在。list.sort(key,reverse=None) key:默认值是None,可指定项目进行排序,此参数可省略。 reverse:默认值是None指做升序排序,“reverse=True”则做降序排序。无论列表中的元素是数值还是字符串都能排序,但......
  • 【源码翻译之交互式对象包 AIS-AIS_ColoredShape.hxx文件 多颜色交互式对象
    类AIS_ColoredShape形状的呈现具有可自定义的子形状属性。此类可以将topods的子拓扑分别设置不同的颜色然后作为一个整体显示成员类型定义文档◆DataMapOfDrawerCompdtypedefNCollection_IndexedDataMap<Handle<AIS_ColoredDrawer>,TopoDS_Compound,TColStd_MapT......
  • Python中idle无法打开问题
    问题描述由于之前下载过python,但是没有开始学习,今天在开始学习之前修改了一下python文件夹的文件名,更改了环境变量里python路径,但是在通过搜索应用程序打开idle时没有反应解决方案由于修改了python的文件名,idle快捷方式里的起始和目标路径没有进行修改,导致没法通过快捷方式打......
  • 基于Python的性能优化--多线程、协程、多进程
    合集-Python(1) 1.基于Python的性能优化05-24收起 一、多线程在CPU不密集、IO密集的任务下,多线程可以一定程度的提升运行效率。importthreadingimporttimeimportrequestsdeffetch_url(url:str)->None:'''根据地址发起请求,获取响应-url:......
  • Python案例题目,入门小白题
    1.抓取链家前十页的数据链家网址:长沙房产网_长沙房地产_长沙房产门户(长沙链家网)1.1.计算均价和总价importtime​fromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy​driver=webdriver.Chrome()driver.get("https://cs.lianjia.com/zu......
  • XⅢ-Python解析网页
    目录        1.requests模块        2.BeautifulSoup        2.1.什么是BeautifulSoup        2.2.解析器        2.3.安装与配置        2.4.快速入门        2.4.1解析数据        标签   ......
  • 打印9*9乘法表(递归或压缩矩阵)python
    打印9*9表defprint_multiplication_table(row,col):ifrow>10:return#递归结束条件ifcol==row:print()#换行print_multiplication_table(row+1,1)#递归调用下一行else:print(f"{row-1}*{col}={(......