【发布时间】:2018-05-12 11:24:23
【问题描述】:
我正在尝试从一个目录加载大量文件。我以前可以通过这个来做到这一点
#directory where all data will be stored
dataDir="C:/Users/me/Desktop/Data/"
Files=[] #list of files
for file in os.listdir(dataDir):
Files.append(scipy.io.loadmat(dataDir+file))
但是现在,我试图让用户选择文件夹,所以我有这个:
import tkinter
from tkinter import filedialog
from tkinter import *
root=tkinter.Tk()
filename=filedialog.askdirectory(parent=root,title='Choose a file')
print (filename)
#directory where all data will be stored
dataDir=('%s',filename)
Files=[] #list of files
for file in os.listdir(dataDir):
Files.append(scipy.io.loadmat(dataDir+file))
它给了我这个错误: “对于 os.listdir(dataDir) 中的文件: TypeError: listdir: path should be string, bytes, os.PathLike or None, not tuple)
我尝试通过 str(filename) 将文件名转换为字符串,但它仍然无法正常工作。有什么想法吗?
【问题讨论】:
-
"filename" 已经是一个字符串。您只需要添加路径分隔符。我建议你让 python 这样做:
Files.append(scipy.io.loadmat(os.path.join(filename, file))). -
('%s', filename)是一个元组。也许你的意思是"%s" % filename?不过,我不明白你为什么不只是做dataDir=filename。
标签: python user-interface tkinter directory uploading