ICode9

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

【进阶04】【自学笔记】Python中文件操作详解

2022-01-01 23:05:12  阅读:191  来源: 互联网

标签:文件 进阶 04 Python pyqt dict test lx01 txt


1.打开文件--open()方法

 举例:

fo = open(r"F:/pyqt/lx01/dict_test.txt", "w")
print ("访问模式 : ", fo.mode)#返回被打开文件的访问模式。
print ("文件名: ", fo.name)#返回文件的名称。
print ("是否已关闭 : ", fo.closed)#返回true如果文件已被关闭,否则返回false。

返回结果:

访问模式 : w
文件名: F:/pyqt/lx01/dict_test.txt
是否已关闭 : False

说明:

 

 这些文件打开模式,你不必死记硬背,最常用的有r, w, a+ ,记住这几个就可以了。

2.读文件内容

2.1读文件--read()方法
fo = open(r"F:/pyqt/lx01/dict_test.txt", "r+", encoding='utf8')
str = fo.read(2)
print ("读取的字符串是 : ", str)
# 关闭打开的文件
fo.close()

  2.2 readlines 以列表的形式返回文件里的所有数据,文件有多少行,列表里就有多少个字符串,没一行的换行符也会被读取

f=open(r"F:/pyqt/lx01/dict_test.txt","r", encoding='utf8')
lines =f.readlines()
print(lines) 

 返回结果:

['测试好的呀\n', '学生\n', '老师\n', '体育生\n', '汽车\n', '卡车\n', '飞机']

 2.3 readline  readline一次只读取一行,如果文件特别大,readlines会一次性把数据读取到内存中,这样会非常耗费内存,而readline就不存在这样的问题,但由于一次只读取一行,所以,想要读取全部数据需要使用while循环

f=open(r"F:/pyqt/lx01/dict_test.txt","r", encoding='utf8')
lines =f.readline()
while lines:
    print(lines)
    lines = f.readline()

3.写文件--write()方法

write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。

write()方法不会在字符串的结尾添加换行符('\n'):

f=open(r"F:/pyqt/lx01/dict_test.txt","a+", encoding='utf8')
f.write("\n添加1")
f.close()

  

4、关闭文件--close()方法

#文件打开以后一定要关闭,否则就会出现内存泄漏,关闭文件使用close方法
f = open(r"F:/pyqt/lx01/dict_test.txt","a+", encoding='utf8')
for line in f:
    print(line)
f.close()

 

#为了避免忘记close文件,还可以使用with语法,该语法可以保证在with语句块退出时可以自动关闭文件

with open(r"F:/pyqt/lx01/dict_test.txt","a+", encoding='utf8') as f:
    for line in f:
        print(line)

  

5、重命名文件--rename()方法

Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。

import os
os.rename(r"F:/pyqt/lx01/dict_test.txt","F:/pyqt/lx01/dict_test1.txt")

6.删除文件--remove()方法

import os
os.remove("F:/pyqt/lx01/dict_test1.txt")

  

 

 

 

 



标签:文件,进阶,04,Python,pyqt,dict,test,lx01,txt
来源: https://www.cnblogs.com/xfbk/p/15756362.html

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

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

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

ICode9版权所有