doingb
2021-08-22 13:59
采纳率: 50%
浏览 49
已结题

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)
运行以上的代码,却发现结果是合并列后输出的,如何输出后仍然保留各自的列呢

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • Pliosauroidea 2021-08-22 14:16
    已采纳

    没太看懂什么意思
    你是想让每一行在新文件中都独占一行?

    
    
    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)
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • CSDN专家-HGJ 2021-08-22 14:40

    如果文件是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)
    
    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题