微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用Python读取多个文件并将它们一个一个地保存在另一个目录中

如何解决用Python读取多个文件并将它们一个一个地保存在另一个目录中

\n

我试图读取目录中的所有文件,然后对它们进行低通滤波。之后,将结果一个一个地保存,但不保存在一个文件中。结果使每个文件具有3列,理想情况下,我希望它们以标头命名,例如col1,col2,col3。

在不使用glob的情况下,我可以单独过滤所有文件,但我有100多个此类文件

任何帮助将不胜感激。

最良好的祝愿

解决方法

除了标题名称之外,我已经部分解决了该问题:

import glob
import pandas as pd
from tnorma import tnorma
import seaborn as sns
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

path = r'location_of_dir'

all_files = glob.glob(path + '/*.csv')
# yn = np.zeros(shape = (101,1))
# tn = np.zeros(shape = (101,1))
#ynew = []

yn = np.zeros(shape = (101,1))

for filename in all_files:
    df = pd.read_csv(filename,index_col=None,header=0)
    print(filename)
    foo = filename.split("/")[-1]
    #df = pd.read_csv(f)
    time = df.iloc[:,0]
    time = time.to_numpy()
    ynew = df.iloc[:,1:]
    ynew = ynew.to_numpy()
    #print(ynew)

    lowPassCutoffFreq = 6.0 # Cut off frequency
    Sample_freq = 150; #Target sample frequency
    N = 2 # Order of the filter; In this case 2nd order
    Wn = lowPassCutoffFreq/(Sample_freq/2)  #Normalize frequency

    b,a = signal.butter(5,Wn,btype='low',analog=False,output='ba')
    #scipy.signal.butter(N,output='ba',fs=None)

    output = signal.filtfilt(b,a,ynew,axis=0)
    #print (output)
    tn = np.linspace(0,100,101)     # new time vector for the new time-normalized data
    yn,tn,indie = tnorma(output,k=3,smooth =1,mask = None,show = False)
    
    np.savetxt("path_name/foldername/file"+ foo,yn,delimiter = ',',newline = "\n")

但是,我很难将标题名称放在每个文件的3列中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。