I am trying to take a file and put it into all directories 1 level down.
TypeError: stat: path should be string, bytes, os.PathLike or integer, not tuple
import shutil
import tkinter as tk
from tkinter import filedialog
import os
root = tk.Tk()
root.withdraw()
files = filedialog.askopenfilenames(parent=root, title='Choose file/s')
path = filedialog.askdirectory()
for dirs in path:
shutil.copy(files, dirs)
I thought that this would be simple, what am I doing wrong?
Advertisement
Answer
Since it is “askopenfilenames“, it returns the results in the form of a tuple. You can iterate over it and move the files to the directory selected:
import shutil
import tkinter as tk
from tkinter import filedialog
import os
root = tk.Tk()
root.withdraw()
files = filedialog.askopenfilenames(parent=root, title='Choose file/s')
j=filedialog.askdirectory()
path = [os.path.join(j,i) for i in os.listdir(j) if os.path.isdir(os.path.join(j,i))]
for fols,dirs in zip(path,files):
shutil.copy(dirs, fols)