我尝试执行以下操作:
RetVal = Shell(fullpythonexepath & fullscriptpath)
fullpythonexepath & fullscriptpath
import numpy as np
thefilepath = "input.txt" # is in the same folder as the script
theoutputpath = "output.txt" # is in the same folder as the script
ssc=np.loadtxt(thefilepath, delimiter='\t', skiprows=0, usecols=range(2)) #error line
#some other code to fit input data
np.savetxt(theoutputpath, sscnew, header=top, fmt='%1.2f\t%1.2f')
运行此命令时,不会打印输出文件,这意味着脚本无法正常运行。
现在可笑的是:当我从IDLE运行python脚本时,它运行正常。当我使用以下命令从外壳运行它时:
fullpythonexepath & fullscriptpath
它说:
我尝试输入input.txt和output.txt的完整路径。当我这样做并在IDLE中运行它时,不再找到该文件。从外壳调用时,它也不起作用。
Python显然未找到input.txt的路径
据我所知,该问题与VBA无关。使用shell命令时也会发生该错误
解决方法是:
import os
os.chdir(r"fullpath")
在脚本中,将当前工作目录更改为我的路径,然后找到input.txt。
答案 0 :(得分:2)
从外壳启动脚本时,脚本的工作目录将是调用该目录的目录。 大多数IDLE都定义了自己的工作目录。 要检查,我建议您这样做:
os.getcwd()
在两种情况下,并查看两种情况下使用的目录