python不同文件夹下相同文件名txt文件

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)