用python写linux中的ls,Python实现Linux环境下的ls命令

在Linux下使用ls命令结合正则表达式,能够高效地进行文件搜索,并通过参数操作文件,于是就想用Python实现这个功能以便在Windows上使用

import os

import re

import sys

path = os.getcwd()

substr = raw_input('The sub-string of the file (Support for Regular Expression): ')

reg = r'' + substr

count = 0

totalSize = 0

fileList = os.listdir(path)

def getFileSize(filePath):

return os.path.getsize(filePath)

def humanReadFileSize(fileByte):

# fileByte = str(getFileSize(filePath))

if fileByte == 0:

return ''

elif fileByte < 1024:

# B

fileSize = str(fileByte) + ' B'

elif fileByte < 1024*1024:

# KB

fileSize = str(fileByte/1024.0) + ' KB'

elif fileByte < 1024*1024*1024:

# MB

fileSize = str(fileByte/1024.0/1024.0) + ' MB'

else:

# GB

fileSize = str(fileByte/1024.0/1024.0/1024.0) + ' GB'

return fileSize

for fileName in fileList:

if re.match(reg, fileName):

count = count+1

filePath = os.path.join(path, fileName)

fileSize = getFileSize(filePath)

totalSize = totalSize+fileSize

print '\t', count, ' - ', humanReadFileSize(fileSize).ljust(30, ' '), fileName

print '-'*160

if len(sys.argv)!=1:

if sys.argv[1] == 'remove':

os.remove(filePath)

print '\n\t\t%d file(s) in total, total size: %s' % (count, humanReadFileSize(totalSize))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果台式电脑怎么开机_龙华苹果电脑回收公司,台式电脑回收公司电话

龙华苹果电脑回收公司,台式电脑回收公司电话oDYIHx 通常液晶显示器有VGA和DVI两种种接口&#xff0c;其中VGA接口在长时间显示后悔出现画面模糊情况&#xff0c;需要校正才能恢复&#xff0c;然而DVi接口传输就比较稳定&#xff0c;它属于全数字无损传输信号&#xff0c;在长…

AtomicInteger使用非阻塞算法,实现并发控制多线程实现售票

代码如下: public class TicketDemo implements Runnable {private static volatile AtomicInteger ticketSum new AtomicInteger(20);private static int finalTotal 0;Overridepublic void run() {int count;while ((count ticketSum.decrementAndGet()) > 0) {System.…

数据库:SQLServer 实现行转列、列转行用法笔记

在许多的互联网项目当中&#xff0c;报表开发是整个项目当中很重要的一个功能模块。其中会有一些比较复杂的报表统计需要行转列或者列转行的需求。今天给大家简单介绍一下在SQLServer当中如何使用PIVOT、UNPIVOT内置函数实现数据报表的行转列、列转行。有需要的朋友可以一起学习…

硬件知识:串口通讯的起始、数据、停止位是怎么分配的?

串口是串行接口&#xff08;serial port&#xff09;的简称&#xff0c;也称为串行通信接口或COM接口。串口通信是指采用串行通信协议&#xff08;serial communication&#xff09;在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分…

ES5 getter setter

最近在学习vuejs&#xff0c;了解到内部实现使用到了es5的Getters和Setters。之前看高程的时候&#xff0c;没有重视这块&#xff0c;今天查看一下文档&#xff0c;了解了他们的作用&#xff0c;再次记录一下&#xff0c;可供以后查看和共享。 定义Getters和Setters&#xff1a…

python 调用bat失败_要想顺利通过Python面试,你最起码需要达到白银段位!

近几年 Python 非常热门&#xff0c;在学术界和产业界的使用率显著提高。目前学习Python的人数日益增多&#xff0c;Python在近3年的编程语言受欢迎度中一直处于榜首。今天我们就来讲讲在产业界&#xff0c;需要具备哪些能力才能获得一个满意的 Python 相关岗位 Offer。Python基…

多线程售票demo,用ReentrantLock实现

代码: public class TicketReentLockDemo implements Runnable {private int ticketTotal 100;private Lock lock new ReentrantLock();Overridepublic void run() {while (ticketTotal > 0) {try {lock.lock();if (ticketTotal > 0) {try {TimeUnit.MILLISECONDS.sle…

在linux安装不了apache,Apache 不能安装在linux?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼官网下载了tar.gz的文件&#xff0c; 然后tar解压&#xff0c; 可是走到 ./configureprefix/usr/local/apache/ 的时候就开始出现一些“NO”我怕这样make会有问题&#xff0c; 请问大家碰到出现"no"的选项嘛&#xff1f;…

andriod sqlite 详解转载

SQLite简介 Google为Andriod的较大的数据处理提供了SQLite&#xff0c;他在数据存储、管理、维护等各方面都相当出色&#xff0c;功能也非常的强大。SQLite具备下列特点&#xff1a; 1.轻量级 使用 SQLite 只需要带一个动态库&#xff0c;就可以享受它的全部功能&#xff0c;而…

数据库:SQLServer中in和 exists函数用法笔记

今天给大家分享一下SQLServer中in和 exists 用法&#xff0c;希望能对大家有所帮助。一、IN 用法确定指定的值是否与子查询或列表中的数据相匹配。1.1 语法格式test_expression [ NOT ] IN ( subquery | expression [ ,...n ] )1.2 参数说明test_expression为任意有…

什么是m叉树_不懂数据库索引的底层原理?那是因为你心里没点b树

前几天下班回到家后正在处理一个白天没解决的bug&#xff0c;厕所突然传来对象的声音&#xff1a; 对象&#xff1a;xx&#xff0c;你有《时间简史》吗&#xff1f; 我&#xff1a;我去&#xff01;妹子&#xff0c;你这啥癖好啊&#xff0c;我有时间也不会去捡屎啊&#xff01…

可重入锁是什么和demo

可重入锁 reentrantlock是独占锁且可重入的 synchronized 也可以重入 可重入意思就是这个线程已经获取锁了&#xff0c;你再获取该锁还能获取 获取的还是原来的锁 不会出现问题 可以降低编程难度 代码如下: new Thread(new Runnable() {Overridepublic void run() {synchr…

linux 安装python 3.x,Linux 安装python3.x步骤

本文转发自博客园非真的文章&#xff0c;内容略有改动linux系统本身默认安装有2.x版本的python&#xff0c;版本x根据不同版本系统有所不同&#xff0c;通过python --V 或 python --version 查看系统自带的python版本。有一些系统命令时需要用到python2&#xff0c;不能卸载&am…

数据库:SQLServer中游标的用法笔记

一、游标的概念知识游标可以理解为SQL Server的一种数据访问机制&#xff0c;它允许用户访问数据的维度是数据行。用户可以对每一行数据进行单独处理&#xff0c;从而降低系统开销和潜在的阻隔情况&#xff0c;游标主要用于存储过程&#xff0c;触发器和 T_SQL复杂的脚本中&…

BZOJ_1009_[HNOI2008]_GT考试_(动态规划+kmp+矩阵乘法优化+快速幂)

描述 http://www.lydsy.com/JudgeOnline/problem.php?id1009 字符串全部由0~9组成,给出一个串s,求一个长度为n的串,不包含s的种类有多少. 分析 第一眼以为是组合.然后更滑稽的是用错误的方法手算样例居然算出来是对的...我数学是有多差... 题解也是看了好半天,有点难理解. 感觉…

智慧政务解决方案(28页)pdf_【金众电子】智慧政务解决方案

智慧政务解决方案立式党建广告机广告机简介&#xff1a;KC-立式政务广告机(室内/室外可选)液晶屏幕特别卖点&#xff1a;安装简易、亮度调节、实时更新、传输安全应用场所&#xff1a;各种需要文化传播的政务机构、政府机关、会议场所等。双立柱政务文化栏/宣传栏文化栏简介&am…

笨办法学linux dhcp,了解网关、DNS、子网掩码、MAC地址、DHCP

原标题&#xff1a;了解网关、DNS、子网掩码、MAC地址、DHCP什么是网关、DNS、子网掩码&#xff0c;它有什么作用&#xff0c;确实&#xff0c;我们平时在网络中总是在不断的提到网关&#xff0c;却很少真正的去了解它。一、什么是网关1、什么是网关网关是一种充当转换重任的计…

数据库:SQLServer Stuff 函数用法笔记

今天小编给大家分享一下自己整理一下SQLServer Stuff函数用法技巧和常用示例&#xff0c;有需要的朋友可以学习一下。一、Stuff函数的作用1.1官方解释STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符&#xff1b;然后将第二个字符串插…

自定义注解,aop实现注解锁

多线程环境下&#xff0c;会出现线程不安全的问题&#xff0c;所以要对某些方法加锁以保证线程安全 但是如果方法过多&#xff0c;每个方法前后都加这么一句&#xff0c;有点麻烦了&#xff0c;而且代码可读性也会差一些。可以使用aop切面编程&#xff0c;对某些加有特定注解&…

Android——实现欢迎界面的自动跳转(转)

Android实现欢迎界面的自动跳转&#xff0c;就是打开某一个安卓手机应用&#xff0c;出现的欢迎界面停留几秒钟&#xff0c;自动进入应用程序的主界面。在网上看到很多种实现办法&#xff0c;但是感觉这种方法还是比较简单的。 在onCreate里设置个Timer&#xff0c;然后建立Int…