[Python](系统编程) 遍历主机文件系统

[Python](系统编程) 遍历主机文件系统

Terminal 交互,根据用户输入显示该目录下的所有文件(夹)

Code

#!/usr/bin/env python3

"""folder.py
Author: Joseph Lin
E-mail: joseph.lin@aliyun.com
Social:
  https://github.com/RDpWTeHM/
  https://blog.youkuaiyun.com/qq_29757283


Usage:
  === windows cmd.exe # for example ===
  > python3 folder.py "D:\"
  ...        False
  Software   True
  ...

  entry one dir('q' to quit): Software
  ...   False
  ...   True
  ...   False
  ...

  entry one dir('q' to quit): ..\
  ### use "..\" could return last dir.

  entry one dir('q' to quit): q
  >

TODO
  N/A

"""
import os
import sys

if sys.platform == 'linux':
    '''
    Reference: 
      [Python] 边边角角笔记 > 判断当前运行平台:
      https://blog.youkuaiyun.com/qq_29757283/article/details/83689149#_9
    '''
    import readline
else:
    pass

try:
    begin_dir = sys.argv[1]
except IndexError:
    print("usage: %s <dir>" % sys.argv[0])
    sys.exit(1)


def print_files_is_dir_in(path):
    files = os.listdir(path)
    for file in files:
        text = "{} is dir?".format(file)
        is_dir = os.path.join(path, file)
        print("{:50} {}".format(text, os.path.isdir(is_dir)))


def main():
    global begin_dir
    last_dir = begin_dir
    print_files_is_dir_in(last_dir)

    select_dir = input("\nentry one dir('q' to quit): ")
    while select_dir != 'q':
        last_dir = os.path.join(last_dir, select_dir)
        if os.path.isdir(last_dir):
            print_files_is_dir_in(last_dir)
        else:
            print("the enter not a dir, quit!")
            sys.exit(0)
        select_dir = input("\nentry one dir('q' to quit): ")


if __name__ == "__main__":
    main()

Test

> python3 folder.py "D:\"
Software              True
TEMP                  True
Documents             True
...

entry one dir('q' to quit): Documents
ProgrammingPython     False
flentPython_examples  True
...

entry one dir('q' to quit): q
>
>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值