【发布时间】: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