我有许多纯文本配置文件(.dta),它们分布在27个子目录中。我试图将所有这些信息解析成一个更容易使用的通用文档。
到目前为止,我有:
import linecache
import csv
import os
csvout = csv.writer(open("dtaCompile.csv","wb"))
directory = os.path.join("c:\\","DirectKey")
for root,dirs,files in os.walk(directory):
for file in files:
if file.endswith(".DTA"):
f=open(file,'r')
lines = f.readlines()
description = lines[1]
articleCode = lines[2]
OS = lines[25]
SMBIOS = lines[32]
pnpID = lines[34]
cmdLine = lines[28]
csvout.writerow([SMBIOS, description, articleCode, pnpID, OS, cmdLine])
f.close()
我收到以下错误:
Traceback (most recent call last):
File "test.py", line 11, in <module>
f=open(file,'r')
IOError: [Errno 2] No such file or directory: '000003APP.DTA'
答案 0 :(得分:1)
而不是
f=open(file,'r')
你的需求
f=open(os.path.join(directory, root, file),'r')
文件只是文件的名称,并没有说明它的路径。你必须使用os.path.join与各种组件来创建完整的路径
答案 1 :(得分:0)
if file.endswith(".DTA"):
file = os.path.join(directory, root, file)
答案 2 :(得分:0)
而不是:
f=open(file,'r')
尝试:
f = open(os.path.join(directory, file), "r")
答案 3 :(得分:0)
我的猜测是你正在执行的程序目录与你正在行走的目录不同。
尝试打印: os.getcwd() 看。