2016-03-13 1 views
0

Я пытаюсь запустить код, указанный в Github, https://github.com/duytinvo/ijcai2015. Тем не менее, после выполнения команды: питон targetdep + .py, я получил следующее сообщение об ошибке:Python: IOError: [Errno 13] Разрешение отклонено? Настройки конфиденциальности?

IOError: [Errno 13] Разрешение отказано: '' ../data/output/training

Это часть код, который вызвал ошибку:

def writevec(filename,x,y): 
f=open(filename,'wb') 
for i in xrange(len(y)): 
    f.write(str(y[i])+'\t') 
    feature=x[i] 
    for (j,k) in enumerate(feature): 
     f.write(str(j+1)+':'+str(k)+' ') 
    f.write('\n') 
f.close() 

if __name__ == "__main__": 
    features=targettw() 
    print "extracting features for training" 
    x_train,y_train=features.allfeat('../data/training/') 
    writevec('../data/output/training',x_train,y_train) 
    print "extracting features for testing" 
    x_test,y_test=features.allfeat('../data/testing/') 
    writevec('../data/output/testing',x_test,y_test) 

Кто-нибудь знает, что я сделал неправильно? Как я могу устранить эту ошибку? Заранее спасибо!

+0

Это ошибка разрешения файлов. '../ data', вероятно, принадлежит другому пользователю. Запуск Windows или Linux? – Torxed

+0

Существует ли каталог '../ data/output /' относительно того, где вы используете скрипт? Если вы используете его из своего домашнего каталога, вы, вероятно, не являетесь владельцем каталога '..' –

+0

Существует ли папка вывода? Показанный код не создает его. Кроме того, поскольку он использует .. он может быть недействительным, в зависимости от папки, из которой вы запускаете скрипт. – bluebrother

ответ

0

В Windows существует ограничение на то, как долго могут быть имена каталогов/файлов, чтобы их открыть. Наличие слишком длинного имени вызовет странные проблемы.

Если это так, то здесь хорошее объяснение: Why does the 260 character path length limit exist in Windows?

Я предлагаю вам перенести проект или выход реж где-то еще, для intsance в r'C:\Users\NANA\Desktop\output' и посмотреть, если это помогает.

Это решение исходит из комментариев выше и может или не может решить проблему OP, но может быть полезно для других с подобными «нечетными» проблемами.

+0

Могу ли я уточнить, что вы имеете в виду под именем, слишком длинным в этом случае? Слишком много слоев или само имя слишком длинное? – Nana

+0

@Nana Полный путь в текстовой форме длинный. Просто подсчитывая символы на пути и добавляя их в основном. – Torxed

+0

Будет ли эта проблема существовать, если бы это был Linux? @Torxed – Nana