python - 将选定的文件复制到python中的目录
问题描述
我试图将使用对话框窗口选择的文件复制到相对目录。
from tkinter import filedialog
from tkinter import *
from shutil import copy2
import os
root = Tk()
root.withdraw()
source = filedialog.askopenfilename(
initialdir="/", title="Select file", filetypes=(("HTML Files","*.html"), ("all files", "*.*")))
target = '/import'
print("Selected file " + source)
copy2(source, target)
选择文件后,它不会出现在目标目录中。
编辑:添加了第二个文件对话框来选择目标目录,现在它可以工作了。
from tkinter import filedialog
from tkinter import *
from shutil import copy2
import time
root = Tk()
root.withdraw()
root.source = filedialog.askopenfilename(initialdir = "/",title = "Select source file",filetypes = (("html files",".html"),("all files",".*")))
print ("Selected file " + root.source)
time.sleep(1)
root.target = filedialog.askdirectory(initialdir = "/",title = "Select target directory")
print ("Selected directory " + root.target)
copy2(root.source, root.target, follow_symlinks=True)
解决方案
您应该更仔细地查看文档。您的目标应该是一个完整的文件目录,而不仅仅是'import'
字符串。在您的示例中,这应该如下所示:
from tkinter import filedialog
from tkinter import *
from shutil import copy2
import os
root = Tk()
root.withdraw()
source = filedialog.askopenfilename(initialdir="/", title="Select file", filetypes=(("HTML Files","*.html"), ("all files", "*.*")))
target = 'import'
dir_parts = list(os.path.split(source))
target_dir = dir_parts[0] + target + '/' + dir_parts[1]
copy2(source, target_dir)
推荐阅读
- c++ - 如何访问数组中对象的数据成员
- angular - Angular11:组件如何获知传递给路由的状态变化?
- c++ - TCP Echo Server 使用线程命令行未显示
- c++ - 如何使用ffmpeg在内存缓冲区中写入帧而不是文件?
- linux - 我的查找排除路径命令有什么问题?
- python - 关于 if 语句 if not 后面指定的问题?
- android - (android) 如何填充芯片的区域?
- lua - 客户端和服务器脚本问题 roblox studio
- javascript - 如何使用 jQuery 获取数据表行的内容?
- vue.js - 使用 Bootstrap Vuejs 将 row.item.attribute 值传递给模式