如何将Python打印从循环导出到不同的文本文件?

时间:2018-05-16 10:08:59

标签: python python-3.x export spyder

我试图使用傅里叶滤波器过滤我的实验测量值,这是有效的。现在我在一个文件夹中有多个原始数据文件(.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,过滤它们,然后使用循环逐个创建一个名为filteredtest_datafile [i] .txt的新文件。

我希望这很清楚。

2 个答案:

答案 0 :(得分:2)

使用以下示例代码,并根据需要进行修改。

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模块。

答案 1 :(得分:0)

您可以在Python的os.listdir()模块中使用os来获取目录的内容。在此之后,使用同一模块中的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)

希望这有帮助。