【问题标题】:Read, write csv files across different directories跨不同目录读取、写入 csv 文件
【发布时间】:2018-11-01 16:22:56
【问题描述】:

我有一个 Python 文件位于文件夹 C:\D1\D1a\D1b 中。另一个文件夹,比如 C:\D2\D2a\D2b 包含一些在不同时间创建的 csv 文件。 第一步,我需要从文件夹 C:\D2\D2a\D2b 中找到最新的 csv 文件。 第二步,我必须打开那个特定的 csv 文件(使用 csv.reader)并根据其内容执行一些计算。 如果 csv 文件与 python 文件位于同一文件夹中,我的程序运行良好,但当我尝试跨不同文件夹工作时会崩溃。这两个文件夹可以位于计算机中的任意位置。 我的系统是 Win10,我更喜欢 python 中的简单解决方案。 简化代码为:

import csv
import glob
import os

list_of_files = glob.glob('C:\D2\D2a\D2b\*.csv')
print('found csv files:',list_of_files)
latest_file = max(list_of_files, key=os.path.getmtime)
print('The most recent .csv file found:',latest_file,'\n')

with open('latest_file',newline='') as DAQfile:
    reader=csv.reader(DAQfile,delimiter=',')
    i=0
    for row in reader:
        i+=1
    rows=i
print(rows)

输出是:

found csv files: ['C:\\D2\\D2a\\D2b\\Book1.csv', 'C:\\D2\\D2a\\D2b\\Book2.csv']
The most recent .csv file found: C:\D2\D2a\D2b\Book2.csv 

Traceback (most recent call last):
  File "C:\D1\D1a\D1b\Mytest.py", line 10, in <module>
    with open('latest_file',newline='') as DAQfile:
FileNotFoundError: [Errno 2] No such file or directory: 'latest_file'

【问题讨论】:

  • with open('latest_file',newline='') as DAQfile:latest_file 作为字符串文字传递,而不是变量的名称。删除引号。我不确定这是否会修复您的代码,但这是一个问题。

标签: python csv operating-system glob


【解决方案1】:

哎呀!似乎 open 语句中 latest_file 周围的引号引起了问题。现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2020-10-05
    • 1970-01-01
    相关资源
    最近更新 更多