如何解决用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 举报,一经查实,本站将立刻删除。