如何在PYTHON中实现一些常见DOS命令的运行

微软的WINDOWS系统从Win32、Win95、Win98,发展到现在的Win10、Win11,视窗系统的所见及所得、设备的即插即用等优势,让电脑使用门坎大大降低,WINDOWS对电脑的普及功不可没。

现在提起DOS系统,可能只有一些老鸟才熟悉,更多的人可能第一印象,就觉得那是一个原始落后的系统,早就被淘汰了。其实,DOS系统一直不曾远去,它一直默默地陪伴着我们,它的有些功能远比WINDOWS来的强大。

比如:

用于列出当前目录和子目录下的所有文件的命令 DIR;

批量重命名命令REN;

用于显示计算机的IP地址、子网掩码和默认网关等网络信息的命令IPCONFIG

用于测试与另一个计算机的连接的命令PING,等等。

按Win+R,让我们进入WINDOWS的命令模式(其实就是以前的DOS模式),去看几个简单的命令:

CD命令:进入目录(目录也就是现在的文件夹)

cd\,回到根目录;

cd..,回到上一级目录。

有的人可能会说,这个命令还要记得要进入目录的文件名,有的甚至说,你进入一个中文目录我看看……

其实CD命令也一直在与时俱进,只要你输入CD命令,空一格,再按下Tab键,你会发现新大陆,什么文件名都不在话下。

另一个就是我非常喜欢也常用的,DIR的重定向命令。

输入dir /?会显示系统帮助:

显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  [drive:][path][filename]
              指定要列出的驱动器、目录和/或文件。

  /A          显示具有指定属性的文件。
  属性         D  目录                R  只读文件
               H  隐藏文件            A  准备存档的文件
               S  系统文件            I  无内容索引文件
               L  重新分析点          O  脱机文件
               -  表示“否”的前缀
  /B          使用空格式(没有标题信息或摘要)。
  /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
              禁用分隔符显示。
  /D          跟宽式相同,但文件是按栏分类列出的。
  /L          用小写。
  /N          新的长列表格式,其中文件名在最右边。
  /O          用分类顺序列出文件。
  排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
               E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
               G  组目录优先           -  反转顺序的前缀
  /P          在每个信息屏幕后暂停。
  /Q          显示文件所有者。
  /R          显示文件的备用数据流。
  /S          显示指定目录和所有子目录中的文件。
  /T          控制显示或用来分类的时间字符域
  时间段      C  创建时间
              A  上次访问时间
              W  上次写入的时间
  /W          用宽列表格式。
  /X          显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
              短名称插在长名称前面。如果没有短名称,在其位置则
              显示空白。
  /4          以四位数字显示年份

可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。

从上面的内容可以看出,DIR命令的参数之多,功能之全。也许很少有人去看,其实也不用看,但当你想实现某种功能时,就可查看下能否用某个参数实现。

比如,我想将某个没有子文件夹的文件夹(后面我们统一用文件夹,不再用目录说法)中的所有文件名列份清单,并保存在一个文件中,WINDOWS好像没有办法,至少我是不会。

在命令模式下,就很容易:

进入该文件夹(现在你应明白我前面为什么要讲CD命令了)

dir /b >001.txt

在WINDOWS下进入该文件夹,就会发现你面有个001.txt的文件,里面包含了所有文件的文件名,甚至还包含001.txt它自己(要想不包含它自己,可以将001.txt放在别的文件夹中)。

那么,如果在PYTHON中,想将某文件夹中所有文件的文件名放在一个TXT文档中,再统计其中的文件数量,或者某个文本在文件名中出现的频次,如何实现呢?

在PYTHON中,专门有个OS内置模块,专门用来处理这些命令。

用法: os.system(command)

如前面所说,将某个文件夹中的所有文件名列份清单,并保存在一个文件中,即可用如下代码实现:

import os
cmd = r'dir C:\Windows\Fonts /b >C:\Users\78*****\Desktop\文件清单.txt' # 78*****是用户名

# cmd = 'dir C:\\Windows\\Fonts /b >C:\\Users\\78*****\\Desktop\\文件清单.txt'
os.system(cmd)

运行结果:

    

 这里主要注意对文件夹的路径中反斜杠\的处理:

1、用原始字符串表示方法,如上面代码中的第二行;

2、采用转义字符\\来代替,如上面代码中的第三行;

3、用斜杠/代替,如下图。

os.system('c:/windows/system32/ipconfig /all>information.txt') # 获取网络信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值