从目录读取所有文件

问题描述 投票:0回答:2

我在从目录中读取文件时遇到问题。通过[k0]方法从tkinter获得通往模型的路径。但是我的代码引发了此错误(文件存在于其中):

FileNotFoundError:[错误2]没有这样的文件或目录:'filename.csv'

这里是功能:

get()
python python-3.x tkinter filesystems
2个回答
0
投票

您的错误是正常的:

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:

0
投票

欢迎使用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)
© www.soinside.com 2019 - 2024. All rights reserved.