Как экспортировать печать Python из цикла в разные текстовые файлы? - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь отфильтровать свои экспериментальные измерения, используя фильтр Фурье, который работает. Теперь я получил несколько файлов необработанных данных (.txt) в папке, которую я хотел бы отфильтровать, а затем поместить в другую папку.

Структура выглядит следующим образом;

Сценарий фильтра: C: \ Users \ myname \ Desktop \ folder1 \ Scripts

Папка с необработанными данными: C: \ Users \ myname \ Desktop \ folder1 \ Scripts \ Raw_data

Папка отфильтрованных данных: C: \ Users \ myname \ Desktop \ folder1 \ Scripts \ Filtered_data

Мой код:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy.fftpack import rfft, irfft, fftfreq

data = pd.read_csv(r'C:\Users\myname\Desktop\folder1\Scripts\Raw_data\rawtest_datafile1.txt')

time   = np.linspace(0, 4017, 4018)
signal = data.TG

print(Filter(time, signal, 0.004,  0.0075, False, 0.04)/10)

Результат в 1D-массиве.

Теперь я хотел бы знать, как я могу импортировать все файлы rawtest_datafile [i] .txt, отфильтровать их и создать новый файл Filtertest_datafile [i] .txt один за другим, используя цикл.

Надеюсь, это достаточно ясно.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Используйте следующий пример кода и измените его в соответствии с потребностями.

data_file_format="C:\Users\myname\Desktop\\folder1\Scripts\Raw_data\\rawtest_datafile{}.txt";

output_file_format="C:\Users\Ruben\Desktop\BEP\Scripts\Filtered_data\output_file{}.txt";

for i in range(1,10):
    datafile=data_file_format.format(i);
    outputfile=output_file_format.format(i);
    data = pd.read_csv(datafile);
    time   = time = np.linspace(0, 4017, 4018)
    signal = data.TG
    print_to_file(Filter(time, signal, 0.004,  0.0075, False, 0.04)/10,outputfile);

Примечание: 1. print_to_file - это функция, которую вам нужно определить. для этого нужно сделать два ввода: данные, которые нужно распечатать, и путь к файлу.

  1. Вам нужно знать количество файлов данных для запуска цикла for. в противном случае вам следует использовать модуль os.
0 голосов
/ 16 мая 2018

Вы можете использовать os.listdir() в модуле os Python для получения содержимого каталога. После этого проверьте, является ли это файл, используя isfile из того же модуля. Выполните операцию фильтрации, если это файл, и запишите файл в место назначения.

import os

for content in os.listdir(source_path):
    if os.path.isfile(os.path.join(source_path, content)):
        # read file and perform filter operation
        new_file = "filtered" + content
        # write data to os.path.join(dest_path, new_file)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...