PyQt5从入门到实践——Chapter11 文件操作

目录

概述

1. Python内置的文件操作

1.1 创建和打开文件(open)

1.2 关闭文件

1.3 打开文件时使用with语句

1.4 写入文件内容

1.5 读取文件内容

1.6 复制文件

1.7 移动文件

1.8 重命名文件

1.9 删除文件

1.10 获取文件基本信息

2. Python内置的文件夹操作

2.1 获取文件夹路径

2.2 判断文件夹是否存在

2.3 创建文件夹

2.4 复制文件夹

2.5 移动文件夹

2.6 重命名文件夹

2.7 删除文件夹

2.8 遍历文件夹

3. PyQt5中的文件及文件夹操作

概述

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类:对文件夹进行创建,重命名,删除,遍历等。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值