2017-02-09 3 views
1

Следуя этому ответу How to plot 10 traces in same figure with different color in python? мне нужно построить много файлов с расширением .numpy которые сохраняются в моей тестовой папкеКак построить все файлы в одной папке на python?

import matplotlib.pyplot as plt 
import numpy as np 
import matplotlib 
import os, sys 

#Read in list of files. You might want to look into os.listdir() 

path='/home/user/Desktop/test' 
traces= os.listdir(path) 

# Create figure 
fig=plt.figure() 
fig.show() 
ax=fig.add_subplot(111) 

# Grab colormap 
cmap = matplotlib.cm.get_cmap('jet') 

# Loop through traces and plot them 
for j,trace in enumerate(traces): 

    # Load file 
    dataArray= np.load(trace) 

    # Grab color 
    c=cmap(float(j)/len(traces)) 

    # Plot 
    ax.plot(dataArray.T,color=c) 

plt.show() 

Но у меня есть эта ошибка:

dataArray= np.load(trace) 
    File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 370, in load 
    fid = open(file, "rb") 
IOError: [Errno 2] No such file or directory: 'trace14.npy' 

Я бы очень благодарю вас, если вы можете мне помочь.

ответ

1

У вас есть эта ошибка, потому что, вероятно, вы используете скрипт из каталога, отличного от '/home/user/Desktop/test'. Вы можете попробовать переместить сценарий на '/home/user/Desktop/test' и запустить его снова или использовать os.path.join, чтобы создать абсолютный путь к файлу. т.е .:

for j,trace in enumerate(traces): 

    filepath = os.path.join(path, trace) 
    # Load file 
    dataArray= np.load(filepath) 
+0

Спасибо, что работает – nass9801

2

Ошибка в пути файла, он непосредственно ищет trace14.py вы можете добавить путь к нему, который будет выглядеть так:

dataArray = np.load(path+trace) 

и изменить путь к:

path = "/home/user/Desktop/test/" 
+0

изменить его так: DataArray = os.listdir (путь) следы = np.load (путь + DataArray), но я до сих пор с той же проблемой. – nass9801

+0

Вы можете вставить здесь ошибку? также вы изменили путь, чтобы иметь дополнительный «/» в конце –

+0

'dataArray' - это массив пути, чтобы он не работал. Попробуйте 'np.load (path + trace)' –