2013-12-16 2 views
0

На моем компьютере MacBook работает OSX Mavericks (я почти уверен, что это не произошло на днях на ПК под управлением Windows 7 с практически идентичным кодом), следующий код дает мне следующую ошибку.Функция numpy IOError

import numpy as np 

massFile='Users/BigD/Dropbox/PhD/PPMS/DATA/DB/HeatCap/HeatCapMass.txt' 
print massFile 

sampleInfo=np.genfromtxt(fname=massFile,skip_header=2,usecols=(2,3,4),dtype=float) 

massfile распечатывается, как ожидалось 'Users/BigD/Dropbox/PhD/PPMS/DATA/DB/HeatCap/HeatCapMass.txt'

, но я получаю ошибку

Traceback (most recent call last): 
    File "test.py", line 7, in <module> 
    sampleInfo=np.genfromtxt(fname=massFile,skip_header=2,usecols=(2,3,4),dtype=float) 
    File "//anaconda/lib/python2.7/site-packages/numpy/lib/npyio.py", line 1317, in genfromtxt 
    fhd = iter(np.lib._datasource.open(fname, 'rbU')) 
    File "//anaconda/lib/python2.7/site-packages/numpy/lib/_datasource.py", line 145, in open 
    return ds.open(path, mode) 
    File "//anaconda/lib/python2.7/site-packages/numpy/lib/_datasource.py", line 477, in open 
    return _file_openers[ext](found, mode=mode) 
IOError: [Errno 2] No such file or directory: '/Users/BigD/Dropbox/PhD/PPMS/Users/BigD/Dropbox/PhD/PPMS/DATA/DB/HeatCap/HeatCapMass.txt' 

это, кажется, пытается использовать половину пути, а затем добавить полный путь к файлу до конца.

Кто-нибудь знает, почему это происходит или может предложить работу?

ответ

4

вы подачи в massFile путь относительно каталога, вы запустившего сценарий.

Чтобы увидеть, где вы, просто введите pwd в вашей оболочке. В вашем случае он вернет /Users/BigD/Dropbox/PhD/PPMS/. Поэтому это значение равносильно добавляется на ваш путь:

massFile='/Users/BigD/Dropbox/PhD/PPMS/Users/BigD/Dropbox/PhD/PPMS/DATA/DB/HeatCap/HeatCapMass.txt' 

Это также значение, которое вы ощущаете в своей трассе.

Есть два способа исправить это:

Чтобы пометить путь, чтобы быть абсолютным просто префикс пути с /:

massFile='/Users/BigD/Dropbox/PhD/PPMS/DATA/DB/HeatCap/HeatCapMass.txt' 

или держать его родственник, вы должны удалить ненужные биты:

massFile='DATA/DB/HeatCap/HeatCapMass.txt' 

Я бы предложил выбрать последний, таким образом вы можете переместить проект вокруг остроумия hout ломает все ваши пути.

+0

Странно, косая черта находится в следе. –

+0

Нет, его нет. Обратите внимание, что он дважды говорит «/ Users/BigD/Dropbox/PhD/PPMS» **? –

+0

Ох. Правильно. Но почему? Ах, потому что это относительно, я вижу сейчас. +1! –

Смежные вопросы