我尝试将os.system()
和.format()
用于隐藏图像存档的程序。我不明白为什么OUTPUT.jpg
没有保存在当前目录中。另外,我有一个GUI,它很容易使用。但是无法获得输出文件。它并不只是创造。拜托,你能帮忙吗?
这是一段代码:
import tkinter as tk
import tkinter.filedialog as f
import os
def access(event):
global arch
arch = f.askopenfilename()
txt['text'] = 'Choose a picture'
btn_1.destroy()
btn_2.grid(row=1, column=1)
def access2(event):
global img
img = f.askopenfilename()
btn_2.destroy()
os.system('copy {} + {} {}/OUTPUT.jpg'.format(img, arch, os.getcwd()))
txt['text'] = 'Ready.'
root = tk.Tk()
txt = tk.Label(root, text='Choose archive')
btn_1 = tk.Button(root, text='Выбрать')
btn_2 = tk.Button(root, text='Выбрать')
txt.grid(row=0, column=1)
btn_1.grid(row=1, column=1)
btn_1.bind('<Button-1>', access)
btn_2.bind('<Button-1>', access2)
root.mainloop()
答案 0 :(得分:1)
使用shutil.copyfileobj(不依赖于os)
替换:
os.system('copy {} + {} {}/OUTPUT.jpg'.format(img, arch, os.getcwd()))
到:
import shutil
destination = open('{}/OUTPUT.jpg'.format(os.getcwd()),'wb')
shutil.copyfileobj(open(img, 'rb'), destination)
shutil.copyfileobj(open(arch,'rb'), destination)
destination.close()