Цикл только повторяет первый экземпляр, и как мне извлечь отдельные имена файлов через 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)