Путь ввода пользователя не распознается os.path.abspath - PullRequest
0 голосов
/ 14 марта 2019

Я пишу скрипт, в котором я хочу, чтобы пользователь ввел путь к файлу, который затем будет проанализирован остальной частью скрипта, чтобы узнать, над каким файлом работать.

Для краткости, вот начало кода, где у меня проблема:

### 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), которая сейчас вызывает ошибки, должна просто возвращать абсолютный путь. Я уверен, что это, вероятно, что-то простое и очевидное, что я просто не понимаю.

Надеюсь, кто-то здесь может помочь.

Спасибо!

...