nizitao 发表于 2021-12-8 20:39:57

如何用Python弹出选择文件夹的对话框

本帖最后由 nizitao 于 2021-12-10 18:17 编辑

如何用python弹出选择文件夹的对话框

阿奇_o 发表于 2021-12-8 20:39:58

如果只是打开某个文件夹,可以用 os.popen(cmd='explorer.exe "C:\\Downloads"')
若是要打开和指定选择一个文件夹(目录),则通常是用GUI里 特定的方法,如

tkinter的
filedialog.askdirectory(initialdir='.\\music')

PyQt5的
QtWidgets.QFileDialog.getExistingDirectory(self, '请选择一个目录')

wp231957 发表于 2021-12-8 20:55:03

需要gui相关

nizitao 发表于 2021-12-8 21:19:47

wp231957 发表于 2021-12-8 20:55
需要gui相关

确实

nizitao 发表于 2021-12-8 21:20:19

wp231957 发表于 2021-12-8 20:55
需要gui相关

但代码怎么写呢

xhlbudd 发表于 2021-12-8 21:20:45

可以写一个BrowserDir函数,正好我最近写一个批量处理PDF的小脚本(对选定文件夹的PDF文件批量操作,如果PDF文件总页数为奇数页,则在最后一页插入一页空白页),代码供参考~~

from PyPDF2 import PdfFileReader, PdfFileWriter
import os
import tkinter
import tkinter.filedialog
import tkinter.messagebox

class Window():
    def __init__(self):
      self.root = root = tkinter.Tk()

      self.label = tkinter.Label(root, text='奇数页PDF批量插入空白页')
      self.label.grid(row=0, column=0)

      self.label = tkinter.Label(root, text='选择目录')
      self.label.grid(row=1, column=0)
      self.entryDir = tkinter.Entry(root)
      self.entryDir.grid(row=1, column=1)
      self.BrowserDirButton = tkinter.Button(root, text='浏览', command=self.BrowserDir)
      self.BrowserDirButton.grid(row=1, column=2)

      self.ButtonCov = tkinter.Button(root, text='开始处理', command=self.Conv, )
      self.ButtonCov.grid(row=2, column=0)

    def BrowserDir(self):
      directory = tkinter.filedialog.askdirectory(title='Little Turtle')
      if directory:
            self.entryDir.delete(0, tkinter.END)
            self.entryDir.insert(tkinter.END, directory)

    def Conv(self):
      path = self.entryDir.get()
      for file in os.listdir(path):
            if file[-4:] in ('.pdf', '.PDF'):
                PDFFile = path + "/" + file
                pdf_reader = PdfFileReader(PDFFile)
                pdf_writer = PdfFileWriter()
                NumPages = pdf_reader.getNumPages()
                if NumPages % 2 == 1:
                  pdf_writer.appendPagesFromReader(pdf_reader)
                  #在总页数为奇数的PDF文件最后插入空白页,尺寸与最后一页一致
                  pdf_writer.addBlankPage()
                  with open(PDFFile, "wb") as out:
                        pdf_writer.write(out)
                        out.close()

    def mainloop(self):
      self.root.minsize(330, 150)
      self.root.maxsize(330, 150)
      self.root.title('Little Turtle')
      self.root.mainloop()

if __name__ == "__main__":
    window = Window()
    window.mainloop()

nizitao 发表于 2021-12-10 14:21:34

本帖最后由 nizitao 于 2021-12-10 18:12 编辑


nizitao 发表于 2021-12-10 18:09:52

xhlbudd 发表于 2021-12-8 21:20
可以写一个BrowserDir函数,正好我最近写一个批量处理PDF的小脚本(对选定文件夹的PDF文件批量操作,如果PD ...

谢谢
页: [1]
查看完整版本: 如何用Python弹出选择文件夹的对话框