我是一个新的python。我有循环功能给我一个文件夹包含100个文件“里面的数据是数字和原始的nuber是相同的”,如下所示:
.FullName
这些文件保存在名为output的文件夹中 我需要将输出文件夹中的两个文件合并为一个文件,如:
A_0.20_1_.txt for example A_0.20_1_ B_0.20_1_
B_0.20_1_.txt 1 4
A_0.20_2_.txt 2 5
B_0.20_2_.txt 3 6
A_0.40_1_.txt
B_0.40_1_.txt
A_0.40_2_.txt
B_0.40_2_.txt
and so on.....
我尝试使用以下代码:
merged_A_B_0.20_1_.txt for example merged_A_B_0.20_1_
merged_A_B_0.20_2_.txt 1 4
2 5
merged_A_B_0.40_1_.txt 3 6
merged_A_B_0.40_2_.txt
and so on.....
但它不起作用并给我错误
filename_list = [f for f in os.listdir(r'C:\Users\output\')if os.path.isfile(f)]
columns = []
for filename in filename_list:
f=open(filename)
x = np.array([float(raw) for raw in f.readlines()])
columns.append(x)
columns = np.vstack(columns).T
np.savetxt('filename_out.txt', columns)
请帮忙吗?
答案 0 :(得分:0)
您的代码实际上正在运行问题是您没有通过os.path.isfile()
的完整路径,因此它不会返回True
并且您的文件列表为空
import numpy as np
import os
file_path = r"C:\Users\output"
filename_list = []
for file in os.listdir(file_path):
file = os.path.join(file_path, file)
if os.path.isfile(file):
filename_list.append(file)
columns = []
for filename in filename_list:
with open(filename, 'r') as f:
x = np.array([float(raw) for raw in f.readlines()])
columns.append(x)
columns = np.vstack(columns).T
np.savetxt('filename_out.txt', columns)
这会将所有文件的数据写入一个文件,每个文件只有一列