目录
概述
1. Python内置的文件操作
1.1 创建和打开文件(open)
file = open('message.txt','w',encoding='utf-8') # 创建或打开文件
file.write("我不是一个伟大的程序员,我只是一个具有良好习惯的优秀程序员。\n") #写入信息
file = open('message.txt','a',encoding='utf-8') # 以追加方式打开文件
file.write("靠代码行数来衡量开发进度,就像是凭重量来衡量飞机制造的进度。\n")
file.close() # 关闭文件对象
1.2 关闭文件
file.close()
1.3 打开文件时使用with语句
使用with语句无论是否发生异常,都能保证with语句执行完成后关闭打开的文件。
with open('message.txt','r',encoding='utf-8') as file: # 以读取模式打开文件
1.4 写入文件内容
写完后记得关闭才会写入磁盘
file.write()
1.5 读取文件内容
(1)读取指定个数字符
(2)读取一行
(3) 读取所有行
实例:以三种方式读取文件内容:
with open('message.txt','r',encoding='utf-8') as file: # 以读取模式打开文件
print(file.read(5)) # 读取前5个字符
print(file.readline()) # 输出第一行数据
print(file.readlines())# 读取全部数据
1.6 复制文件
使用shutil模块
import shutil
shutil.copyfile(src,dst) #src为源文件,dst为复制到的目标文件
1.7 移动文件
import shutil
shutil.move(src,dst) #src为源文件,dst为移动到的目标文件 #此方法也适用于重命名
1.8 重命名文件
import os
os.rename(src,dst) #src为需要重命名的源文件,dst为重命名后的文件
1.9 删除文件
import os
os.remove(path)
1.10 获取文件基本信息
import os
os.stat(path)
实例:设计窗口,选择文件并显示文件基本信息
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
class Demo(QWidget):
def __init__(self,parent=None):
super(Demo,self).__init__(parent)
self.initUI() # 初始化窗口
def initUI(self):
self.setWindowTitle("获取文件信息")
grid=QGridLayout() # 创建网格布局
# 创建标签
label1 = QLabel()
label1.setText("选择路径:")
grid.addWidget(label1, 0, 0, QtCore.Qt.AlignLeft)
# 创建显示选中文件的文本框
self.text1 = QLineEdit()
grid.addWidget(self.text1, 0, 1, 1, 3, QtCore.Qt.AlignLeft)
# 创建选择按钮
btn1 = QPushButton()
btn1.setText("选择")
btn1.clicked.connect(self.getInfo)
grid.addWidget(btn1, 0, 4, QtCore.Qt.AlignCenter)
# 显示文件信息的文本浏览器
self.text2=QTextBrowser()
grid.addWidget(self.text2, 1, 0, 1, 5, QtCore.Qt.AlignLeft)
self.setLayout(grid) # 设置网格布局
def getInfo(self):
file = QFileDialog() # 创建文件对话框
file.setDirectory('C:\\') # 设置初始路径为C盘
if file.exec_(): # 判断是否选择了文件
filename=file.selectedFiles()[0] # 获取选择的文件
self.text1.setText(filename)# 将选择的文件显示在文本框中
import os,time # 导入模块
fileinfo=os.stat(filename) # 获取文件信息
self.text2.setText("文件完整路径:"+ os.path.abspath("filename")
+"\n文件大小:"+ str(fileinfo.st_size)+" 字节"
+"\n最后一次访问时间:" + time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(fileinfo.st_atime))
+"\n最后一次修改时间:" + time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(fileinfo.st_mtime))
+"\n最后一次状态变化时间:" + time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(fileinfo.st_ctime)))
if __name__=='__main__':
import sys
app=QApplication(sys.argv) # 创建窗口程序
demo=Demo() # 创建窗口类对象
demo.show() # 显示窗口
sys.exit(app.exec_())
2. Python内置的文件夹操作
Python中可以使用内置的os、os.path和shutil模块对文件夹进行操作
2.1 获取文件夹路径
import os
print(os.getcwd()) #相对路径
print(os.path.abspath("demo.py")) #绝对路径
os.path.join("path1","path2") #接拼路径
2.2 判断文件夹是否存在
import os
os.path.exists("path")
print(os.path.exists("path"))#存在返回Ture 不存在则False
2.3 创建文件夹
import os
os.mkdir("path")#创建一级文件夹
os.makedirs("path")#创建多级文件夹
2.4 复制文件夹
import shutil
shutil.copytree(src,dst)
2.5 移动文件夹
import shutil
shutil.move(src,dst)
2.6 重命名文件夹
import os
os.rename(src,dst)
2.7 删除文件夹
import os
os.rmdir("path")
2.8 遍历文件夹
import os
os.walk("path") #遍历指定文件夹下所有文件及子文件夹
os.listdir("path") #获取指定文件夹根目录下的所有文件名(列表)
3. PyQt5中的文件及文件夹操作
QFile类:对文件进行打开,读写,复制,重命名,删除等操作;
QFileInfo类:获取文件信息;
QDir类:对文件夹进行创建,重命名,删除,遍历等。