【发布时间】:2017-02-02 12:36:32
【问题描述】:
我使用 Windws 下的 python 程序 cclib 来处理一些 *.log 文件,这些文件位于 Z:\dir1 的子文件夹中,有时甚至是子子文件夹中。 我已通过 DOS 脚本将 .py 脚本复制到存在 *.log 文件的每个子文件夹中。
我想执行这个简单的 .py 脚本:
from cclib.io import ccopen
p = ccopen("*opt.NORMAL.log")
data = p.parse()
homo = data.homos[0] # assuming spin-restricted
lumo = homo + 1
homo_energy = data.moenergies[0][homo]
lumo_energy = data.moenergies[0][lumo]
print (homo_energy, lumo_energy)
但是,将 ccopen(与此相关的所有关闭 cclibs .py 脚本位于我的 C:\py35 文件夹中)定向到我执行此脚本的当前工作目录中的 *.log 文件不起作用(AttributeError:' NoneType' 对象没有属性 'parse')。 Ccopen 似乎需要我的 *.log 的绝对路径,如果我将它粘贴进去,至少它可以工作。 使用我的 DOS 脚本,我递归地通过 Z:\dir1 的每个子和子子,其中包含一个 *.log 文件,但名称不同。在每个目录中,我执行我的 py 脚本。如何告诉脚本中的 ccopen 模块处理当前工作目录中的 *.log 文件?
我猜这种问题已经被问了一千次了,但我就是找不到合适的解决方案。所以,抱歉重复,感谢您的帮助。
【问题讨论】:
标签: python python-3.x path