ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python基础文件操作

2021-12-19 18:30:01  阅读:117  来源: 互联网

标签:文件 读取 encoding python print 操作 txt open


 一、文件的读取

File_one=opne(‘test.txt’,’w’,encoding=’uft-8’)

打开文件使用open函数

第一个参数:打开的文件

第二个参数:打开的模式,默认只读(r)打开

常用的模式有:

①r 只读,如果文件不存在 报错

②w 只写 的形式打开文件,不管文件存在不存在都创建新的文件,会清空文件(创建一个全新的出来,覆盖掉了原来的文件)

③a 追加  文件不存在则创建文件,文件存在则打开文件

④b 二进制打开

⑤+ 更新(读和写)

⑥a+写在文件后面(控制光标在文件的最后面),r+写在文件前面(控制光标在文件的最前面)

路径分为相对路径和绝对路径

1.相对路径:

①和代码文件在一个目录里直接写

eg :File_one=opne(‘test.txt’,’w’,encoding=’uft-8’)

②文件和代码文件的文件夹在一起 就是访问上层文件

eg:File_one=open(‘../test.txt’,’w’,encoding=’uft-8’)

备注:一个../代表一层

(就是不写在哪个盘)

2.绝对路径

绝对路径适用于不在一个盘的情况下,这个时候要注意转义符

Eg:File_one=open(r‘C:\Users\Desktop\a.txt’,’w’,encoding=’uft-8’)

二、文件的写入

①写入文件直接调用write方法,write方法每次只可以接受一个参数

eg: file_one.write(‘this is test file’)

②如果想要一次写入多个内容,那就需要用 writelines

eg : file_one.writelines([“Dada”,”Dada”]) #传列表,换行用\n

#往文件里写只能写入字符串类型的

三、文件的保存

写入文件时,一般先写入内存,只有调用flush刷新到硬盘中才能保存到文件

① f.flush()  #刷新保存

② file_one.close()  #关闭文件也会自动保存修改到文件中

四、调整光标

① file_one.tell()  #当文件读取之后,可以调用tell方法查看文件中指针的位置

② file_one.seek(0) #当指针在末尾时读取不出内容,需要把指针移动到文件开头

f=open(r"C:\Users\yyz\Desktop\filetest.txt","a+",encoding='utf-8')
f.write("a")
f.writelines(["Sd","Da"])
a=f.tell()  #当文件读取之后,可以调用tell方法查看文件中指针的位置
print(a)
f.flush()
f.seek(0)  #当指针在末尾时读取不出内容,需要把指针移动到文件开头
print(f.read(1))  #读入指定数量的字符 如果不写就是读取全部
print(f.readline())  #读取一行
print(f.readlines())  #读取多行数据 放在一个列表里面,便于操作
#如果要中间某几行,用切片
#eg:
f_data=f.readlines()  #读取多行,需要获得指定行数,可以切片

f.close()  #关闭文件

#如果忘记关了 可以用with  open
#with open 上下文件管理器,自动保存关闭文件

with open(r"C:\Users\yyz\Desktop\filetest.txt","a+",encoding='utf-8') as f:
    print(f.read())

#如果必须用某种格式打开,errors='ignore'忽略错误
with open(r"C:\Users\yyz\Desktop\filetest.txt","a+",encoding='utf-8',errors='ignore') as f:
    f.seek(0)
    print(f.read())

标签:文件,读取,encoding,python,print,操作,txt,open
来源: https://blog.csdn.net/m0_62894677/article/details/122027435

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有