吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1623|回复: 5
收起左侧

[求助] 输出到控制台与输出到文件不同,求教大神指点(列出指定目录下所有文件和文件夹)

[复制链接]
黄河大鲤鱼 发表于 2020-1-2 10:39
本帖最后由 黄河大鲤鱼 于 2020-1-2 11:30 编辑

输出不同.png

左边是cmd控制台的显示,右边是运行了脚本后的输出。
PS,有没有大神再修改一下代码,让最后一行“第三个第二层2”的竖线往上接到“第三个第二层1”,显示得更美观一些。

[Python] 纯文本查看 复制代码
import os
mulu=r'C:\Users\Administrator\Desktop\js'

def lcwj(y,count=0):    #列出文件,y是字符串目录
    with open('out.txt', 'a+') as f:
        x=os.listdir(y)     #x是列表
        if x==[]:
            count-=1
            return None
        else:
            length_x=len(x)     #列表x中元素个数
            length_wj=0
            for i in x:
                if os.path.isfile(y+os.sep+i):          #先列出文件,如果文件数不等于x长度,那么(接下)
                    print('  ' * count + '|__' + i)
                    print('  ' * count + '|__' + i,file=f)
                    length_wj+=1
            if length_wj==length_x:         #如果长度相等,表明x全为文件,返回上一层
                count-=1
            else:
                for i in x:
                    if os.path.isdir(y + os.sep + i):
                        print('  ' * count + '|__' + i)
                        print('  ' * count + '|__' + i,file=f)
                        count+=1
                        lcwj(y + os.sep + i, count)
                        count-=1

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Vvvvvoid 发表于 2020-1-2 11:23
有子文件夹 就跳过 , 放下一轮遍历
这样的话 前面的都是没子文件夹的
不就在一起了么
 楼主| 黄河大鲤鱼 发表于 2020-1-2 11:32
Vvvvvoid 发表于 2020-1-2 11:23
有子文件夹 就跳过 , 放下一轮遍历
这样的话 前面的都是没子文件夹的
不就在一起了么

抱歉没听明白。控制台的输出是正确的,但是输出到文本后就不对了。我想让输出到文本的和控制台输出的显示一样。
15774211127 发表于 2020-1-2 11:55
本帖最后由 15774211127 于 2020-1-2 11:57 编辑

[Python] 纯文本查看 复制代码
import os
mulu=r'/Users/fuhao/temp'
 
def lcwj(y,count=0):    #列出文件,y是字符串目录
    x=os.listdir(y)     #x是列表
    if x==[]:
        return None
    else:
        fileArr = []
        dirArr =[]
        for i in x:
            if os.path.isfile(y+os.sep+i):          #先列出文件,如果文件数不等于x长度,那么(接下)
                fileArr.append(i)
            else:
                dirArr.append(i)
        dirArr.extend(fileArr)
        for i in dirArr:
            print('  ' * count + '|__' + i)
            print('  ' * count + '|__' + i,file=f)
            if os.path.isfile(y+os.sep+i) == False:
                lcwj(y+os.sep+i, count+1);

with open('out.txt', 'a+') as f:
    lcwj(mulu)



image.png
 楼主| 黄河大鲤鱼 发表于 2020-1-2 12:33
15774211127 发表于 2020-1-2 11:55
[mw_shl_code=python,true]import os
mulu=r'/Users/fuhao/temp'

谢谢。自己迷糊了。
大神顺便能实现一下第二个功能吗,把平级的目录用竖线连起来,看着美观。比如让最后一行“第三个第二层2”的竖线往上接到“第三个第二层1”
15774211127 发表于 2020-1-2 12:37
本帖最后由 15774211127 于 2020-1-2 12:42 编辑
黄河大鲤鱼 发表于 2020-1-2 12:33
谢谢。自己迷糊了。
大神顺便能实现一下第二个功能吗,把平级的目录用竖线连起来,看着美观。比如让最后 ...

[Python] 纯文本查看 复制代码
import os
mulu=r'/Users/fuhao/temp'
 
def lcwj(y,count=0):    #列出文件,y是字符串目录
    x=os.listdir(y)     #x是列表
    if x==[]:
        return None
    else:
        fileArr = []
        dirArr =[]
        for i in x:
            if os.path.isfile(y+os.sep+i):          #先列出文件,如果文件数不等于x长度,那么(接下)
                fileArr.append(i)
            else:
                dirArr.append(i)
        dirArr.extend(fileArr)
        for i in dirArr:
            print('|  ' * count + '|--' + i)
            print('|  ' * count + '|--' + i,file=f)
            if os.path.isfile(y+os.sep+i) == False:
                lcwj(y+os.sep+i, count+1);

with open('out.txt', 'a+') as f:
    lcwj(mulu)



image.png
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 00:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表