Выполнение вычислений по папкам - PullRequest
1 голос
/ 30 мая 2020

У меня есть основной каталог и 9 подпапок внутри. Мне нужно сначала прочитать путь и в каждой папке, исключая указанные c файлы, и построить результат с легендой имени папки. Проблема в том, что я вижу файлы, которые мне нужны для вычислений, но тогда ничего не работает. Код, который я написал, ниже:

from __future__ import division
import sys
import os
import numpy as np
import matplotlib.pyplot as plt
import glob
import seaborn as sns
from scipy import stats
from scipy.stats.kde import gaussian_kde

mean_curv = []
FILES=[]
for r, d, f in os.walk(r'C:\Users\Hasan\Desktop\output\new our scenario\beta 15\test'):
    for dirs in d:
        CASES = [f for f in sorted(files) if f.startswith('config')]
        maxnum = np.max([int(os.path.splitext(f)[0].split('_')[1]) for f in CASES])

        CASES = ['configuration_%d.out' % i for i in range(maxnum)]
        FILES.append(CASES)
        for i, d in enumerate(FILES): 
            a = np.loadtxt(d).T 
            num = os.path.splitext(d)[0] 
            local_curv = np.abs(a[4])
        mean_curv.append(np.mean(local_curv))
Time = np.arange(0,len(mean_curv))
plt.plot(Time,mean_curv)

Ошибка, которую я получил, ниже:

ValueError                                Traceback (most recent call last)
<ipython-input-62-4e1e3e29813a> in <module>
      1 for i, d in enumerate(RIVERS):
----> 2     a = np.loadtxt(d).T
      3     num = os.path.splitext(d)[0]
      4     local_curv = np.abs(a[4])
      5     mean_curv.append(np.mean(local_curv))

~\Anaconda3\lib\site-packages\numpy\lib\npyio.py in loadtxt(fname, dtype, comments, delimiter, converters, skiprows, usecols, unpack, ndmin, encoding, max_rows)
   1157         # converting the data
   1158         X = None
-> 1159         for x in read_data(_loadtxt_chunksize):
   1160             if X is None:
   1161                 X = np.array(x, dtype)

~\Anaconda3\lib\site-packages\numpy\lib\npyio.py in read_data(chunk_size)
   1085 
   1086             # Convert each value according to its column and store
-> 1087             items = [conv(val) for (conv, val) in zip(converters, vals)]
   1088 
   1089             # Then pack it according to the dtype's nesting

~\Anaconda3\lib\site-packages\numpy\lib\npyio.py in <listcomp>(.0)
   1085 
   1086             # Convert each value according to its column and store
-> 1087             items = [conv(val) for (conv, val) in zip(converters, vals)]
   1088 
   1089             # Then pack it according to the dtype's nesting

~\Anaconda3\lib\site-packages\numpy\lib\npyio.py in floatconv(x)
    792         if '0x' in x:
    793             return float.fromhex(x)
--> 794         return float(x)
    795 
    796     typ = dtype.type

ValueError: could not convert string to float: 'configuration_0.out'

1 Ответ

1 голос
/ 30 мая 2020

Вы игнорируете путь к файлам, вместо:

a = np.loadtxt(d).T 

вы должны использовать:

a = np.loadtxt(os.path.join(r, d)).T 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...