1

我正在开发一个循环,其中对指定目录中的每个 csv 进行重新采样,然后导出到一个新文件中。尽管尝试了各种文件夹并使用了确切的文件夹路径,但我收到了 FileNotFoundError。

# Specify folder name
serial = '015'

# Specify directory (note - '...' substitute for the full path used back to the drive letter)

root_dir = '...\\CleanTemps\\{}\\'.format(str(serial)) 

#loop
for filename in os.listdir(root_dir):
    if filename.endswith('.csv'):

        print(filename)

        # Pull in the file
        df = pd.read_csv(filename)

这将打印该文件夹中八个文件 .csv 文件的列表。但是,当使用以下代码拉入文件时(一个接一个作为 df 进行修改,我收到 FileNotFoundError:


#loop
for filename in os.listdir(root_dir):
    if filename.endswith('.csv'):

        # Pull in the file
        df = pd.read_csv(filename)
4

2 回答 2

2

您的文件的路径由 root_path + 您的文件名组成,您可以使用:

from pathlib import Path 

root_path = Path(root_dir)

for filename in os.listdir(root_path):
    if filename.endswith('.csv'):

        # Pull in the file
        df = pd.read_csv(root_path/filename)

或者您可以使用:

for filepath in root_path.glob("*.csv"):
    df = pd.read_csv(filepath)
于 2019-09-02T19:10:51.563 回答
1

您必须提供文件的完整(或相对)路径,而不仅仅是其名称,此路径基于文件的根目录,您可以使用os.path.join它来构建它:

df = pd.read_csv(os.path.join(root_dir, file_name))
于 2019-09-02T18:58:49.680 回答