我正在编写一个脚本,在该脚本中,我希望用户输入一个文件路径,然后该文件的其余部分将对该文件路径进行解析,以作为了解要处理哪个文件的方式。
为简洁起见,这是我有问题的代码的开头:
### import modules
import pyabf
#### open file and extract basic data
file_path = input('file path?')
abf = pyabf.ABF(file_path)
data = abf.data
如果我以这种形式运行脚本,则会出现以下错误:
init 中的文件“ /Users/XXX/anaconda3/envs/blah_blah/lib/python3.6/site-packages/pyabf/abf.py”,第65行 引发ValueError(“ ABF文件不存在:%s”%self.abfFilePath) ValueError:ABF文件不存在
这是给我这个错误的脚本部分:
# clean-up file paths and filenames, then open the file
self.abfFilePath = os.path.abspath(abfFilePath)
if not os.path.exists(self.abfFilePath):
raise ValueError("ABF file does not exist: %s" % self.abfFilePath)
self.abfID = os.path.splitext(os.path.basename(self.abfFilePath))[0]
log.debug(self.__repr__())
如果我在控制台中分别运行代码行,则一切正常:
abf = pyabf.ABF(file_path) # same path as before works to open the file
data = abf.data # then manages to extract the correct numpy array.
将路径作为用户输入输入而不是直接输入使用该参数的路径时,会发生什么情况?我尝试使用带有或不带有''或()的不同方式键入路径,但是我无法使pyabf.ABF脚本识别该路径。
我看了一下os.path信息,据我所了解的os.path.abspath(abfFilePath)行,此行现在正在调试,应该只返回一个绝对路径名。我敢肯定,这可能只是我不了解的简单明了。
希望这里有人可以提供帮助。
谢谢!