从用户目录加载文件
Loading files from directory from user
我正在尝试从一个目录加载大量文件。我以前可以通过这个
来做到这一点
#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))
但是现在,我试图让用户 select 文件夹,所以我有这个:
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:路径应该是字符串、字节、os.PathLike 或 None,而不是元组)
我尝试通过 str(filename) 将文件名变成一个字符串,但它仍然不起作用。有什么想法吗?
当您定义 dataDir = ('%s', filename)
时,您正在创建一个包含两个元素的元组。一个是 '%s'
,另一个是 filename
.
的值
如果我理解正确的话你应该使用dataDir = '%s' % filename
。这样 dataDir
将是一个值为 filename
.
的字符串
你在命令中创建元组
dataDir=('%s',filename)
然后你在 listdir(dataDir)
中使用它,期望字符串
直接在listdir
中使用filename
for file in os.listdir(filename):
错误指出您给 listdir
的路径应该是 str
而您给它的路径是 tuple
.
和dataDir=('%s',filename)
一样,dataDir
是一个包含两个字符串的元组。但是,文件名已经是 str
。试试 os.listdir(filename)
.
而不是 os.listdir(dataDir)
您将需要import os
。
我正在尝试从一个目录加载大量文件。我以前可以通过这个
来做到这一点#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))
但是现在,我试图让用户 select 文件夹,所以我有这个:
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:路径应该是字符串、字节、os.PathLike 或 None,而不是元组)
我尝试通过 str(filename) 将文件名变成一个字符串,但它仍然不起作用。有什么想法吗?
当您定义 dataDir = ('%s', filename)
时,您正在创建一个包含两个元素的元组。一个是 '%s'
,另一个是 filename
.
如果我理解正确的话你应该使用dataDir = '%s' % filename
。这样 dataDir
将是一个值为 filename
.
你在命令中创建元组
dataDir=('%s',filename)
然后你在 listdir(dataDir)
中使用它,期望字符串
直接在listdir
filename
for file in os.listdir(filename):
错误指出您给 listdir
的路径应该是 str
而您给它的路径是 tuple
.
和dataDir=('%s',filename)
一样,dataDir
是一个包含两个字符串的元组。但是,文件名已经是 str
。试试 os.listdir(filename)
.
os.listdir(dataDir)
您将需要import os
。