QT开发中文网

在上面代码的基础上添加复制文件夹到指定文件夹

要实现复制文件夹到指定文件夹的功能,你可以使用shutil.copytree()函数。以下是更新后的代码示例:

from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QFileDialog
import shutil

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("File Saving Example")
        
        # 创建按钮并连接槽函数
        self.button = QPushButton("Select Files and Folders", self)
        self.button.clicked.connect(self.save_files_and_folders)
    
    def save_files_and_folders(self):
        # 打开文件对话框选择要保存的文件和文件夹
        file_dialog = QFileDialog()
        file_dialog.setFileMode(QFileDialog.ExistingFiles | QFileDialog.Directory)
        
        if file_dialog.exec():
            files_and_folders = file_dialog.selectedFiles()
            
            # 指定保存图片、文本和文件夹的目标路径
            image_folder = "path/to/image/folder"
            text_folder = "path/to/text/folder"
            folder_destination = "path/to/destination/folder"
            
            for item in files_and_folders:
                if item.endswith(".txt"):
                    dest_path = f"{text_folder}/{os.path.basename(item)}"
                    shutil.copy(item, dest_path)  # 复制文本文件
                
                elif os.path.isdir(item):
                    folder_name = os.path.basename(item)
                    dest_path = f"{folder_destination}/{folder_name}"
                    shutil.copytree(item, dest_path)  # 复制整个文件夹
    
if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec()

这样修改后,你就可以选择文件、文件夹以及文件夹中的所有内容,然后将它们保存到不同的目标文件夹。其中,对于文本文件,仍然是使用shutil.copy()函数进行复制;而对于文件夹,则使用shutil.copytree()函数来递归复制整个文件夹。

请确保指定的目标文件夹已经存在,并且避免将源文件或源文件夹复制到相同的目标位置,以防止出现意外结果。

希望这能满足你的需求!如有其他问题,请随时提问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=9151

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?