我在从目录中读取文件时遇到问题。通过[k0]方法从tkinter获得通往模型的路径。但是我的代码引发了此错误(文件存在于其中):
FileNotFoundError:[错误2]没有这样的文件或目录:'filename.csv'
这里是功能:
get()
您的错误是正常的:
def readf(self):
for r, d, f in os.walk(self.name_m.get()):
for filepath in f:
with open(filepath, 'r') as csvFile:
reader = csv.reader(csvFile)
m = np.array([])
for row in reader:
m = np.append(m, float(row[0])
您将os.walk的输出在r(包含基础存储库),d(包含子存储库)和f(包含文件名)之间进行分割]
[执行时:
for r, d, f in os.walk(self.name_m.get()):
您尝试在当前工作目录中而不是在其存储位置中打开文件名。
您是否要读取目录的所有文件并包括所有子目录,还是只希望基本目录中的所有文件?
对于第二种选择,实现此目标的最简单方法是:
for filepath in f:
with open(filepath, 'r') as csvFile:
欢迎使用stackoverflow!为了使我们能最好地为您提供帮助,请务必提供import glob
import os
def readf(self):
for filepath in [fic for fic in glob.glob(os.path.join(self.name_m.get(), '*.csv'))]:
with open(filepath, 'r') as csvFile:
reader = csv.reader(csvFile)
m = np.array([])
for row in reader:
m = np.append(m, float(row[0])
。在不知道例如minimal reproducible example方法是什么的情况下很难提供帮助。
话虽如此,几件事情可能会有所帮助:
您可以使用内置的get
模块中的glob
功能来获取与目录树中特定模式不匹配的所有文件。
glob
这比手动遍历目录树要容易。
此外,您可以使用第三方库(例如熊猫)通过更高级别的api轻松加载csv文件:
import glob
files = glob.glob('/path/to/files/**/*.csv', recursive=True)