不同平台获取指定目录内容的详细信息命令各不相同:

Linux中可以通过ls -al获取获取

windows中可以通过dir命令获取

下面是我写的一个通用获取目录内容详细信息的python3脚本:

#!/usr/bin/env python3
# -*- coding: utf-8 -*- import os, time, sys
from os.path import join, getsize def ListDir(dir_data):
'''
:param dir_data: 指定获取内容的目录
每次返回目录下的一个文件或文件夹(生成器练习)
'''
list_dir = os.listdir(dir_data)
while True:
try:
list_obj = list_dir.pop()
yield dir_data, list_obj
except IndexError:
return def GetDirSize(dir):
'''
:param dir: 指定获取大小的目录
获取目录大小
'''
size = 0
for root, dirs, files in os.walk(dir):
size += sum([getsize(join(root, name)) for name in files])
return size def getFileInfo(dir_data):
'''
:param dir_data: 调用ListDir函数是所需参数
获取目录内的每个文件或目录的属性和大小并打印
'''
info = {}
for root, obj in ListDir(dir_data):
dir_obj = '%s/%s' %(root, obj)
if os.path.isfile(dir_obj): #文件处理
'''info为字典格式,方便返回调用,此脚本只是输出内容,不涉及返回调用'''
info['TimeCreated'] = os.path.getctime(dir_obj) #获取创建时间
info['TimeModified'] = os.path.getatime(dir_obj) #获取访问时间
info['Size'] = os.path.getsize(dir_obj)/1024/1024 #获取文件大小,单位为M
if info['Size'] >= 1024: #文件大小换算为G
info['Size'] = info['Size']/1014
print('%-5s\t%10.2fG\t%30s\t%30s\t%-20s' %('dir', info['Size'], time.ctime(info['TimeCreated']), time.ctime(info['TimeModified']), obj))
elif info['Size'] < 1: #文件大小换算问K
info['Size'] = info['Size'] * 1024
print('%-5s\t%10.2fK\t%30s\t%30s\t%-20s' %('dir', info['Size'], time.ctime(info['TimeCreated']), time.ctime(info['TimeModified']), obj))
else:
print('%-5s\t%10.2fM\t%30s\t%30s\t%-20s' %('dir', info['Size'], time.ctime(info['TimeCreated']), time.ctime(info['TimeModified']), obj)) else: #目录处理
info['TimeCreated'] = os.path.getctime(dir_obj)
info['TimeModified'] = os.path.getatime(dir_obj)
info['Size'] = GetDirSize(dir_obj)/1024/1024 if info['Size'] >= 1024:
info['Size'] = info['Size']/1014
print('%-5s\t%10.2fG\t%30s\t%30s\t%-20s' %('file', info['Size'], time.ctime(info['TimeCreated']), time.ctime(info['TimeModified']), obj))
elif info['Size'] < 1:
info['Size'] = info['Size'] * 1024
print('%-5s\t%10.2fK\t%30s\t%30s\t%-20s' %('file', info['Size'], time.ctime(info['TimeCreated']), time.ctime(info['TimeModified']), obj))
else:
print('%-5s\t%10.2fM\t%30s\t%30s\t%-20s' %('dir', info['Size'], time.ctime(info['TimeCreated']), time.ctime(info['TimeModified']), obj)) if __name__ == '__main__':
getFileInfo(sys.argv[1])

win7执行结果:

E:\chengd_ftp_server\module>python list_dir.py ./
file 7.22K Mon Aug 14 22:36:24 2017 Sat Aug 19 13:03:43 2017 __pycache__
file 8.47K Sat Aug 12 10:32:11 2017 Sat Aug 19 00:30:22 2017 threading_socket_server.py
file 1.56K Sat Aug 12 09:04:21 2017 Mon Aug 14 23:08:05 2017 socket_ftp_main.py
file 3.02K Sat Aug 19 14:17:31 2017 Sat Aug 19 14:17:31 2017 list_dir.py

centos7执行结果:

[root@localhost tmp]# ls -lah
total 128K
drwxrwxrwt. 15 root root 4.0K Jul 20 18:34 .
dr-xr-xr-x. 17 root root 253 Jul 18 13:03 ..
drwxr-xr-x 2 root root 85 Jul 18 17:32 20170720
drwxr-xr-x 2 root root 103 Jul 19 05:58 20170721
drwxr-xr-x 2 root root 141 Jul 19 13:14 20170722
drwxr-xr-x 2 root root 121 Jul 20 01:33 20170723
drwxr-xr-x 2 root root 39 Jul 20 04:03 20170724
drwxr-xr-x 2 root root 54 Jul 20 17:26 20170801
-rw-r--r-- 1 root root 233 Jul 19 23:33 apache.log
-rw-r--r-- 1 root root 1.4K Jul 19 23:21 apachen.log
drwxrwxrwt. 2 root root 6 Jun 26 15:37 .font-unix
drwxr-xr-x 2 root root 18 Jul 18 13:08 hsperfdata_root
drwxrwxrwt. 2 root root 6 Jun 26 15:37 .ICE-unix
drwxr-xr-x. 2 root root 30 Jun 27 05:27 shutil_file
drwxrwxrwt. 2 root root 6 Jun 26 15:37 .Test-unix
drwxrwxrwt. 2 root root 6 Jun 26 15:37 .X11-unix
drwxrwxrwt. 2 root root 6 Jun 26 15:37 .XIM-unix
-rw------- 1 root root 97K Jul 18 11:27 yum_save_tx.2017-07-18.11-27.uzI4eR.yumtx
-rw------- 1 root root 15K Jul 18 12:53 yum_save_tx.2017-07-18.12-53.vANJxP.yumtx
[root@localhost tmp]# /root/dir.py .
dir 1.72K Thu Jul 20 17:26:17 2017 Thu Jul 20 17:26:19 2017 20170801
dir 1.65K Thu Jul 20 04:03:46 2017 Thu Jul 20 07:01:24 2017 20170724
file 0.23K Wed Jul 19 23:33:55 2017 Wed Jul 19 23:34:05 2017 apache.log
file 1.30K Wed Jul 19 23:21:24 2017 Wed Jul 19 23:19:02 2017 apachen.log
dir 4.88K Thu Jul 20 01:33:32 2017 Thu Jul 20 18:17:47 2017 20170723
dir 2.13K Wed Jul 19 13:14:10 2017 Thu Jul 20 18:17:47 2017 20170722
dir 0.97K Wed Jul 19 05:58:58 2017 Thu Jul 20 18:17:47 2017 20170721
dir 3.17K Tue Jul 18 17:32:47 2017 Thu Jul 20 18:17:47 2017 20170720
dir 32.00K Tue Jul 18 13:08:48 2017 Thu Jul 20 18:17:47 2017 hsperfdata_root
file 14.76K Tue Jul 18 12:53:05 2017 Tue Jul 18 12:53:05 2017 yum_save_tx.2017-07-18.12-53.vANJxP.yumtx
file 96.68K Tue Jul 18 11:27:03 2017 Tue Jul 18 11:27:03 2017 yum_save_tx.2017-07-18.11-27.uzI4eR.yumtx
file 0.05K Tue Jul 18 11:34:08 2017 Thu Jul 20 18:17:47 2017 shutil_file
dir 0.00K Mon Jun 26 15:44:13 2017 Thu Jul 20 18:17:47 2017 .ICE-unix
dir 0.00K Mon Jun 26 15:44:13 2017 Thu Jul 20 18:17:47 2017 .font-unix
dir 0.00K Mon Jun 26 15:44:13 2017 Thu Jul 20 18:17:47 2017 .X11-unix
dir 0.00K Mon Jun 26 15:37:09 2017 Thu Jul 20 18:17:47 2017 .Test-unix
dir 0.00K Mon Jun 26 15:37:09 2017 Thu Jul 20 18:17:47 2017 .XIM-unix

文件大小之计算到KB,不是太精确;大家有兴趣的可以精确到字节就完美了!

python3获取指定目录内容的详细信息的更多相关文章

  1. [转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    原文:http://blog.csdn.net/vchao13/article/details/6200255 1.获取指定目录下所有文件信息 /// <summary> /// 返回指定 ...

  2. C# 获取指定目录下所有文件信息

    /// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...

  3. C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    /// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...

  4. c# 获取指定目录下的所有文件并显示在网页上

    参考文献: FileInfo 的使用  https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...

  5. 获取小众ftp服务器指定目录内容列表

    今天获取小众ftp服务器指定目录内容列表时费劲急了. ///parama url="ftp://x.x.x.x/dir_name" public string GetFTPDir( ...

  6. 9.JAVA之GUI编程列出指定目录内容

    代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...

  7. java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中

    /** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. *  * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件 ...

  8. python获取指定目录下所有文件名os.walk和os.listdir

    python获取指定目录下所有文件名os.walk和os.listdir 觉得有用的话,欢迎一起讨论相互学习~Follow Me os.walk 返回指定路径下所有文件和子文件夹中所有文件列表 其中文 ...

  9. C++:获取指定目录下的所有文件

    1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector&g ...

随机推荐

  1. M5加密字符串

    private string GetMD5str(string oldStr) { //将输入转换为ASCII 字符编码 ASCIIEncoding enc = new ASCIIEncoding() ...

  2. SQL Server 2014内存优化表的使用场景(转载)

    最近一个朋友找到走起君,咨询走起君内存优化表如何做高可用的问题 大家知道,内存优化表作为In-Memory OLTP功能是从SQL Server 2014开始引入,用来对抗Oracle 12C的In- ...

  3. 解决:Determining IP Information for eth0...问题

    环境:Centos 6.2     VMWare Workstation 7.1.2  故障现象: 在虚拟机中启动Centos,在启动页面中停留在Determining IP Information ...

  4. Operating System Error Codes

    How To Fix Windows Errors Click here follow the steps to fix Windows and related errors. Instruction ...

  5. 【转载】Please configure Android Sdk(android studio)解决办法

    https://blog.csdn.net/u011622280/article/details/79005453 studio就报Please configure Android Sdk,重启and ...

  6. 在TortoiseSVN使用clean up

    1.在[Cleanup]窗体中勾选中复选框[Clean up working copy status],选中该复选框表示解除锁定. 2.在[Cleanup]窗体中勾选中复选框[revert all c ...

  7. Hadoop HBase概念学习系列之HRegion服务器(三)

    所有的数据库数据一般是保存在Hadoop分布式系统上面的,用户通过一系列HRegion服务器获取这些数据.一台机器上一般只运行一个HRegion服务器,而且每一分区段的HRegion也只会被一个HRe ...

  8. sql点滴43—mysql允许用户远程登陆

     方法1 局域网连接mysql报错: ERROR 1130: Host '192.168.0.220' is not allowed to connect to this MySQL server 解 ...

  9. Kafka安装及使用

    zookeeper安装 下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/ 我这里下载的是zookeeper-3.4.13版本,下载后解压在E: ...

  10. 如何修改word文档中每行字符的最大默认值和每页最大行数默认值

    事情起因是这样的,小明在写论文的过程中,发现自己的文档的字与字的间距看起来比其他人的字符间距大,于是觉得奇怪,明明设置了一样的格式啊,设置每行38个字符,每页34行,为什么小明写的文档字符间距看着比较 ...