Я пишу скрипт, в котором я хочу, чтобы пользователь ввел путь к файлу, который затем будет проанализирован остальной частью скрипта, чтобы узнать, над каким файлом работать.
Для краткости, вот начало кода, где у меня проблема:
### import modules
import pyabf
#### open file and extract basic data
file_path = input('file path?')
abf = pyabf.ABF(file_path)
data = abf.data
Если я запускаю скрипт в этой форме, я получаю следующую ошибку:
Файл "/Users/XXX/anaconda3/envs/blah_blah/lib/python3.6/site-packages/pyabf/abf.py", строка 65, в init
поднять 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), которая сейчас вызывает ошибки, должна просто возвращать абсолютный путь. Я уверен, что это, вероятно, что-то простое и очевидное, что я просто не понимаю.
Надеюсь, кто-то здесь может помочь.
Спасибо!