import os
def get(name, info):
# 写入新文件夹
with open(r"E:\temp2{}".format(name), "a") as f:
f.write("\n".join(info))
path = r"E:\temp1"
lists = os.listdir(path)
for l in lists:
# 子文件夹路径
p = os.path.join(path, l)
ps = os.listdir(p)
for p1 in ps:
# 每个文件路径
p2 = os.path.join(p, p1)
# 读取每个文件内容
with open(p2, "r") as f:
lines = f.readlines()
get(p1, lines)
运行以上的代码,却发现结果是合并列后输出的,如何输出后仍然保留各自的列呢
没太看懂什么意思
你是想让每一行在新文件中都独占一行?
def get(name, info):
# 写入新文件夹
with open(r"E:\temp2{}".format(name), "a") as f:
for lines in info:
f.write("\n" + lines)
# 原文件夹
path = r"E:\temp1"
lists = os.listdir(path)
for l in lists:
# 子文件夹路径
p = os.path.join(path, l)
ps = os.listdir(p)
for p1 in ps:
# 每个文件路径
p2 = os.path.join(p, p1)
# 读取每个文件内容
with open(p2, "r") as f:
lines = f.readlines()
get(p1, lines)
如果文件是txt文本,用如下代码,可以纵向合并同名文件下的数据内容,并保持列对齐。
import os
def get(name, info):
# 写入新文件夹
with open(r"F:\tmp1\c_{}".format(name), "a",encoding='utf-8') as f:
f.write("\n".join(info)+'\n')
#原文件夹
path = r"F:\tmp1"
lists = os.listdir(path)
for l in lists:
# 子文件夹路径
p = os.path.join(path, l)
ps = os.listdir(p)
for p1 in ps:
# 每个文件路径
p2 = os.path.join(p, p1)
# 读取每个文件内容
with open(p2, "r",encoding='utf-8') as f:
lines = [x.strip() for x in f.readlines()]
get(p1, lines)