我有一个名为“odbList.txt”的txt文件,其中包含几个odb文件的名称。
plate_2mm.odb
plate_4mm.odb
plate_6mm.odb
现在我编写了一个Python脚本,我想在循环中打开每个文件。
# list of ODB-Files
odbList = [ ]
f = file( 'W:/someDirectory/odbList.txt' , 'r')
count = 0
for line in f.readlines() :
odbList.append (line)
count = count + 1
def getSIF(case, i):
odb = openOdb(path = 'W:/someDirectory/' + case)
# start analyses for each case
for i in xrange(0,count):
getSIF(odbList[i], i)
我收到以下错误消息:
OdbError: Cannot open file W:/someDirectory/plate_2mm.odb
. *** ERROR: No such file: W:/someDirectory/plate_2mm.odb
但奇怪的是,当我对完整路径进行硬编码时,它的工作原理非常好。
另一个奇怪的事情。如果我改用这一行:
odb = openOdb(path = case)
我收到以下错误消息:
OdbError: Cannot open file C:/Temp/plate_2mm.odb
. *** ERROR: No such file: C:/Temp/plate_2mm.odb
如果我将所有文件都转移到C:/ Temp,一切正常。但是,如果我使用第一个版本/不同的文件夹,为什么它不起作用?特别是因为它在硬编码时工作。
答案 0 :(得分:0)
您是否尝试输入字符串作为原始字符串,例如odb = openOdb(path = r'W:/someDirectory/' + case)
或使用os.sep字符,如下所示:odb = openOdb(path = 'W:someDirectory' + os.sep + case)
答案 1 :(得分:0)
我打开文件的大部分时间都使用以下内容:
f=open(file_name,'r')
s=f.read().splitlines()
f.close()
while '' in s:
s.remove('')
现在,您将拥有一个没有输入的列表。
或者你也可以使用像
这样的东西 import os
odbList=[]
for fileN in os.listdir("."):
if '.odb' in fileN:
odbList.append(fileN)
这将在脚本的目录/工作目录中找到名称中包含.odb的所有文件