[轉]python3中選擇文件對話框的格式打開和保存圖片


 

python3中選擇文件對話框的格式打開和保存圖片

  1.  
    tkinter.filedialog.asksaveasfilename() # 選擇以什么文件名保存,返回文件名
  2.  
    tkinter.filedialog.askopenfilename() # 選擇打開什么文件,返回文件名

有時候我們想要以選擇文件對話框的格式打開一張圖片或者保存圖片,我在嘗試之后把我的代碼分享給大家作為參考:

打開一張圖片並顯示

  1.  
    root = tkinter.Tk() # 創建一個Tkinter.Tk()實例
  2.  
    root.withdraw() # 將Tkinter.Tk()實例隱藏
  3.  
    default_dir = r"文件路徑"
  4.  
    file_path = tkinter.filedialog.askopenfilename(title= u'選擇文件', initialdir=(os.path.expanduser(default_dir)))
  5.  
    image = Image.open(file_path)
  6.  
    plt.imshow(image)
  7.  
    plt.show()

只需要在彈出對話框后選擇要打開的圖片就可以了。如下圖所示:
不服輸的南瓜

保存圖片

  1.  
    fname = tkinter.filedialog.asksaveasfilename(title= u'保存文件', filetypes=[( "PNG", ".png")])
  2.  
    picture.save(str(fname) + '.png', 'PNG')

只需要在彈出對話框后選擇保存位置,輸入圖片名字即可。如下圖所示:
不服輸的南瓜

【注】如果不加以下兩行代碼:

  1.  
    root = tkinter.Tk() # 創建一個Tkinter.Tk()實例
  2.  
    root.withdraw() # 將Tkinter.Tk()實例隱藏

程序運行后將會出現以下一個小框:

不服輸的南瓜

參考自 https://blog.csdn.net/weixin_40283816/article/details/83387965

https://blog.csdn.net/sinat_41104353/article/details/79323064 

我的測試:

eg1:打開文件夾保存圖片
 

  1.  
    import cv2
  2.  
    from tkinter import *
  3.  
    import tkinter.filedialog
  4.  
    root = tkinter.Tk() # 創建一個Tkinter.Tk()實例
  5.  
    root.withdraw() # 將Tkinter.Tk()實例隱藏
  6.  
    fname = tkinter.filedialog.asksaveasfilename(title= u'保存文件', filetypes=[( "jpg", ".png")])
  7.  
    a=cv2.imread( '15.jpg')
  8.  
    cv2.imwrite(str(fname) + '.png',a)

eg2:打開文件夾保存csv文件

  1.  
    from tkinter import *
  2.  
    import tkinter.filedialog
  3.  
    root = tkinter.Tk() # 創建一個Tkinter.Tk()實例
  4.  
    root.withdraw() # 將Tkinter.Tk()實例隱藏
  5.  
    fname = tkinter.filedialog.asksaveasfilename(title= u'保存文件', filetypes=[( "csv", ".CSV")])
  6.  
    fname=fname+ '.csv'
  7.  
    # coding: utf-8
  8.  
    import csv
  9.  
    import pandas as pd
  10.  
    csvfile = open(fname, 'w') #打開方式還可以使用file對象
  11.  
    name=[ '姓名', '年齡', '電話']
  12.  
    list1 = [
  13.  
    ( '小河', '25', '1234567'),
  14.  
    ( '小芳', '18', '789456')
  15.  
    ]
  16.  
    test=pd.DataFrame(columns=name,data=list1)
  17.  
    test.to_csv(fname)

eg3:
 

  1.  
    import pandas as pd
  2.  
    from tkinter import *
  3.  
    import tkinter.filedialog
  4.  
    root = tkinter.Tk() # 創建一個Tkinter.Tk()實例
  5.  
    root.withdraw() # 將Tkinter.Tk()實例隱藏
  6.  
    fname = tkinter.filedialog.asksaveasfilename(title= u'保存文件', filetypes=[( "csv", ".CSV")])
  7.  
    fname=fname+ '.csv'
  8.  
    X_lst=[ -0.0, 0.1, -0.4, 0.2, 0.0, -0.4, 0.1, 0.2, -0.2, 0.1]
  9.  
    Y_lst=[ 0.7, 1.0, 0.6, 1.0, 0.9, 1.3, 0.9, 0.5, 1.1, 0.5]
  10.  
    date_lst=[ '2019-03-02 16:29:51', '2019-03-02 16:29:51', '2019-03-02 16:29:51',
  11.  
    '2019-03-02 16:29:51', '2019-03-02 16:29:51', '2019-03-02 16:29:51',
  12.  
    '2019-03-02 16:29:51', '2019-03-02 16:29:51', '2019-03-02 16:29:52',
  13.  
    '2019-03-02 16:29:52']
  14.  
    data_csv=[]
  15.  
    for i in zip(date_lst,X_lst,Y_lst):
  16.  
    data_csv.append(i)
  17.  
    print(data_csv)
  18.  
    name=[ '0Time', '0X', '0Y']
  19.  
    test=pd.DataFrame(columns=name,data=data_csv)
  20.  
    test.to_csv(fname)
  21.  
     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM