Цикл только повторяет первый экземпляр, и как мне извлечь отдельные имена файлов через os.walk?

Цель: скрипт, который ищет в каталоге файлы аксографа и выполняет последовательность вычислений и возвращает либо значения, либо сохраняет их в файл CSV.

Обновление: данные поступают из необработанных файлов Axographio внутриклеточных записей, где каждый файл содержит 4 потока данных. Я стремлюсь сделать очень простые вычисления свойств ehpys: входное сопротивление, полуширина на половине максимума, реобаза, потенциал SAG, постоянная времени мембраны после гиперполяризации.

Я нашел Python-модуль "timfit ", в котором есть полезные библиотеки для этого, но он не импортирует должным образом. В настоящее время я устраняю неполадки этого пакета.

Это мой первый сценарий и первые записи, поэтому, если у кого-то есть идеи, пожалуйста, поделитесь.

Проблема 1. "f = axographio.read(filename)" принимает только один аргумент со строкой, специфичной для "filename.axgd". Я не могу поместить этот метод в одиночку, так как результирующий "файл" является объектом списка, а не единственным экземпляром каждого имени файла, которое я ищу. Я думаю, что вышеуказанная функция может работать с "f=axographio.read(file)", если я могу получить этот объект файла в виде списка или массива имен файлов и извлечь их.

Проблема 1 теперь решена с f = axographio.read(os.path.join(root, file)) - было неясно, что os.path работает в модуле axographio.

Проблема 2. Я могу напечатать все мои файлы в виде списка строк, но не могу извлечь и открыть каждый отдельный файл (даже с file=open(blablabla.).

Обновление: я могу либо зациклить для каждого открытого файла или сохранить их в список или массив. Я не против советов по лучшей практике по этому вопросу. Axograph, кажется, хорошо работает с массивом NumPy, но список заманчив, поскольку он обладает большей гибкостью. Любой совет по этому поводу?

Примечание: нет необходимости делать это сложным. Ключевым моментом является выполнение вычислений для нескольких файлов по моему выбору. Сохраняю ли я это в файл или имею больше или меньше контроля - дело вкуса и времени.

 -*- coding: utf-8 -*-
"""

@author: Martenzi
"""
import os,sys
import numpy as np
import matplotlib.pylab as plt
import axographio
from scipy import stats
import re
import os
from collections import defaultdict


""" Search a directory for all Axograph files """
for root, dirs, files in os.walk("."):
    for file in files:
        if file.endswith(".axgd"):
            f = axographio.read(os.path.join(root, file))

                plt.show(file)
                plt.plot(f.data[0],f.data[1])
                plt.plot(f.data[0],f.data[2])
                plt.plot(f.data[0],f.data[3])
                plt.plot(f.data[0],f.data[4])

"""Ниже приведены различные фрагменты кода, которые я опробовал. Они не в определенном порядке. Я пробовал вещи и складывал их как комментарии" ""

#            if(line == 'foo'):
#                line = next(irofile)  #BEWARE, This could raise StopIteration!
#                print line
#            for i in file:            
#                cells = [];
#                cells.append(file);
#            for index, w in enumerate (loopme):
#            cells = array ( [i] ,dtype=complex)
#            print(file)
#            for k in file:
#                d = defaultdict(int)
#                d[k].append()
#            m=self.fileFormatRegex.match(file)
#            self.processFile(root, open(os.path.join(r"/", root, file)), age, inString)

#            infile = open(cells,"r")
#            fullpath = os.path.walk(files)
#            infile = open(file, "r")
#            f = open(file ["r"][buffering])
#            with open(infile, mode='r'):
##                f = axographio.read(file)
#                print(file)

#                f = axographio.read(cell)
#                with open(fullpath, 'r') as f:

#                f = axographio.read(file)
#                data = re.sub(r'(\s*function\s+.*\s*{\s*)',
#                    r'\1echo "The function starts here."',
#                    f.read())
#            with open(fullpath, 'w') as f:
#                f.write(data)

0 ответов

Другие вопросы по тегам