Я ноб в кодировании Python, и я столкнулся с чем-то, с которым мне не помогает никакая информация. Я пытаюсь написать простой инструмент для внесения в список каталогов, и я не могу иметь дело с Spaces в имени каталога в OSX. Мой код выглядит следующим образом:Пробелы в пути к каталогу python
def listdir_nohidden(path):
import os
for f in os.listdir(path):
if not f.startswith('.'):
yield f
def MACListDirNoExt():
import os
MACu = PCu = os.environ['USER']
MACDIR = '/Users/'+MACu+'/Desktop//'
while True:
PATH = raw_input("What is the PATH you would like to list?")
if os.path.exists(PATH):
break
else:
print "That PATH cannot be found or does not exist."
NAME = raw_input ("What would you like to name your file?")
DIR = listdir_nohidden(PATH)
DIR = [os.path.splitext(x)[0] for x in DIR]
f = open(''+MACDIR+NAME+'.txt', "w")
for file in DIR:
f.write(str(file) + "\n")
f.close()
print "The file %s.txt has been written to your Desktop" % (NAME)
raw_input ("Press Enter to exit")
Для облегчения поиска неисправностей, хотя я думаю, что это может быть по существу сводились к:
import os
PATH = raw_input("What is the PATH you would like to list")
os.listdir(PATH)
При подаче путь к каталогу, который содержит пробелы/Volumes/диск/это папка возвращает
«нет такого файла или каталога: '/ Volumes/Disk/это \\ не \\ а \\ папка /'
Похоже, что он убежал от побега ...?
Показанный код не может отобразить сообщение об ошибке. Пожалуйста, покажите код, который вы фактически используете, * unedited *, точный ввод, который вы ему дали, * неотредактированный * и сообщение об ошибке, которое вы действительно получили, * unedited *. – zwol
Обратите также внимание, что ваш второй фрагмент кода («свариваемый») работает правильно в каталогах с пробелами в их именах, а ваш первый фрагмент кода стал неверным, и поэтому я не могу его протестировать (не используйте вкладки). – zwol
(Возможно, ваша проблема заключается в том, что вы набираете обратную косую черту в своем приглашении? Не делайте этого. Оболочка хочет этого, но эта программа не делает этого.) – zwol