常用的DOS命令来了,Python标准模块

贴代码了,这里使用的是C#控制台输出文件名到记事本中,文件名使用逗号隔开:

  • windows下调用使用cmd命令搜索

    1. 文件名模糊匹配
      //在目录E:/workspace中递归遍历查找已.c结尾的文件,并显示出来
      for /r E:/workspace %i in (*.c) do @echo %i

    2. 按部分内容字符串搜索文件
      //在E:/workspace目录下文件名以.c结尾的,并且这些文件中的内容里包含字符串main()的所有文件
      for /r E:/workspace %a in (*.c) do @findstr /im "main()" "%a"

DOSDisk Operation System,即磁盘操作系统,是人与计算机之间进行交互的一种方式,有了DOS,人们就不必去深入了解机器的硬件结构,也不必去死记硬背那些枯燥的机器指令。只需通过一些接近于自然语言的DOS命令,就可以轻松地完成绝大多数的日常操作。

1.模块简介

os模块主要包含普遍的操作系统相关操作,如果开发者希望自己开发的Python应用能够与平台无关,尤其需要关注os这个模块。

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        public static string FileName = "";

        public static void Main(string[] args)
        {
            bool isContinute = true;
            WriteMessage("结束程序请输入1");
            WriteMessage("请输入要获取文件名的路径:");
            string path = Console.ReadLine();
            do
            {
                if (string.IsNullOrEmpty(path))
                {
                    WriteMessage("路径不存在!请重新输入");
                }
                else
                {
                    DirectoryInfo dir = new DirectoryInfo(path);
                    if (dir.Exists == false)
                    {
                        WriteMessage("路径不存在!请重新输入");
                    }
                    else
                    {
                        FileName = "";
                        GetChildDicsName(dir);
                        WriteMessage(FileName);
                        Console.WriteLine("获取该路径下文件名成功!你可以继续输入新的路径");
                    }
                }
                path = Console.ReadLine();
                isContinute = path != "1";
            } while (isContinute);
        }

        public static DirectoryInfo[] GetChildDicsName(DirectoryInfo dir)
        {
            FileInfo[] fileArray = dir.GetFiles();
            DirectoryInfo[] childDirs = dir.GetDirectories();

            foreach (FileInfo file in fileArray)
            {
                FileName  = file.Name   ",";
            }
            if (childDirs.Length > 0)
            {
                foreach (DirectoryInfo dirChild in childDirs)
                {
                    GetChildDicsName(dirChild);
                }
            }
            return childDirs;
        }

        public static void WriteMessage(string message)
        {
            Console.WriteLine(message);
            //File.Create(@"C:UsersPublicDesktoptest.txt");
            FileStream fs = File.Open(@"C:UsersPublicDesktoptest.txt", FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(message);  //这里是写入的内容
            sw.Close();
            fs.Close();
        }
    }
}

DOS命令的交互方式需要一个控制台窗口,打开控制台有以下两种方式:

2.模块使用

 

  • linux 下调用控制台命令搜索

    1. 文件名模糊匹配
      //在目录/home/wxn/workspace中查找文件名以.c结尾的所有文件
      find /home/wxn/workspace -name '*.c'

    2. 按照文件内容搜素
      在目录/home/wxn/workspace中查找文件里还有字符main()的文件
      grep -r "main()" /home/wxn/workspace

    3. 综合查找
      //在目录/home/wxn/workspace中查找文件名以.c结尾的并且文件内容中包含字符串main()的文件
      find /home/wxn/workspace -type f -name '*.c' | xargs grep "main()"

方式一:开始(桌面左下角)-->所有程序(windows10在“所有应用”)-->附件-->命令提示符(windows10在“Windows 系统”)

2.1 os模块

1. os.name,输出字符串指示正在使用的平台,如果是Windows平台,输出'nt',如果是Linux/Unix平台,输出'posix'。

import os

print os.name

控制台输出,

posix#如果是Linux/Unix平台
nt   #如果是Windows平台

2. os.getcwd,获取当前的工作目录,就是当前Python应用工作的目录。

import os

print os.getcwd()

控制台输出,

/home/zhb/workspace/PythonTest

3. os.listdir,返回指定目录下的所有文件和目录。

import os

print os.listdir(os.getcwd())

控制输出,

['test.py', '.pydevproject', 'PaperID_mapping_to_AffiliationsID.txt', '.settings', '.project', 'BrowseQueryResult.txt']

4. os.remove,删除一个文件。

import os

os.remove("temp.txt")

删除当前目录下的temp.txt文件。

5. os.system,执行shell命令。

import os

os.system("ls -al")

列出当前工作目录下的所有文件与目录的信息,控制输出,

total 3297204
drwxrwxr-x 3 zhb zhb       4096 10月 13 19:52 .
drwxrwxr-x 4 zhb zhb       4096 10月 10 20:44 ..
-rwxr--r-- 1 zhb zhb     106063 10月 13 19:03 BrowseQueryResult.txt
-rwxr--r-- 1 zhb zhb 3376199667  3月  5  2016 PaperID_mapping_to_AffiliationsID.txt
-rw-rw-r-- 1 zhb zhb        364 10月 10 20:44 .project
-rw-rw-r-- 1 zhb zhb        423 10月 10 20:44 .pydevproject
drwxrwxr-x 2 zhb zhb       4096 10月 11 15:26 .settings
-rw-rw-r-- 1 zhb zhb        241 10月 13 19:53 test.py

6. os.sep,取代操作系统特定的路径分隔符。

import os

print os.sep

控制台输出,

/#Linux/Unix操作系统输出
#Windows操作系统输出

7. os.linesep,当前平台使用的行终止符。

>>> import os
>>> os.linesep

'n'#Linux平台
'rn'#Windows平台

控制台信息截图:

方式二:开始-->在搜索框内输入“cmd”命令,回车即可打开控制台窗口。如下图所示:

2.2 os.path模块

1. os.path.split,返回一个路径的目录名和文件名,并不检查这个路径是否真实存在。

import os

print os.path.split("/home/workspace/PythonTest/test.py")

print os.path.split("/home/zhb/workspace/PythonTest/test.py")

控制输出,

('/home/workspace/PythonTest', 'test.py')
('/home/zhb/workspace/PythonTest', 'test.py')

2. os.path.isfile,os.path.isdir分别用于判断指定路径是不是一个文件和目录。

import os

print os.path.isfile("/home/zhb/workspace/PythonTest/temp.txt")

print os.path.isdir("/home/zhb/workspace/PythonTest")

print os.path.isfile("/home/zhb/workspace/PythonTest/temp.py")

print os.path.isdir("/home/workspace/PythonTest")

控制台输出,

True
True
False
False

3. os.path.exists,用于检查指定的路径是否真实的存在。

import os

print os.path.exists("/home/workspace/PythonTest/test.py")

print os.path.exists("/home/zhb/workspace/PythonTest/test.py")

控制台输出,

False
True

4. os.path.abspath,获得指定文件的绝对路径。

import os

print os.path.abspath("test.py")

控制台输出,

/home/zhb/workspace/PythonTest/test.py

5. os.path.normpath,规范指定路径的字符串形式。

import os

print os.path.normpath("/home/zhb////////workspace/PythonTest/test.py")

控制台输出,

/home/zhb/workspace/PythonTest/test.py

6. os.path.getsize,获得文件大小,如果文件名为目录,则返回目录的大小。

import os

print os.path.getsize("test.py")

print os.path.getsize("temp")

控制台输出,

285
4096

7. os.path.splitext,分离文件名与扩展名。

import os

print os.path.splitext("test.py")

控制台输出,

('test', '.py')

8. os.path.join,连接目录与文件名或者目录。

import os

print os.path.join("/home/zhb/workspace/PythonTest","test.py")
print os.path.join("/home/zhb","workspace/PythonTest")

控制台输出,

/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest

9. os.path.basename,返回文件名。

import os

print os.path.basename("test.py")
print os.path.basename("/home/zhb/workspace/PythonTest/test.py")

控制台输出,

test.py
test.py

10. os.path.dirname,返回文件路径。

import os

print os.path.dirname("test.py")
print os.path.dirname("/home/zhb/workspace/PythonTest/test.py")

控制台输出,

/home/zhb/workspace/PythonTest

11. os.walk,遍历顶级目录下的文件。

函数声明,os.walk(top, topdown=True, onerror=None, followlinks=False)

参数top,需要遍历的顶级目录的路径,

参数topdown,默认是"True",便是首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录中的文件。

参数onerror,默认是值是None,表示忽略文件遍历时的错误,如果不为空,则提供一个自定义函数提示错误信息后继续遍历或者抛出异常终止遍历。

import os

top_dir = "/home/zhb/workspace/PythonTest"

for dir_path,subpath,files in os.walk(top_dir,True):
    for file in files:
        file_path = os.path.join(dir_path,file)
        print file_path

控制台输出,

/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt
/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs

将参数topdown设置为False,

/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt

12. os.path.walk,遍历文件夹下所有文件,先遍历顶级目录,再遍历子目录中的文件,但是只产生文件路径,是子目录和文件的混合列表。

函数声明,os.path.walk(top, func, arg),

参数top,需要遍历的顶级目录路径。

参数func,表示回调函数,即对遍历路径进行处理的函数。

参数arg,是传递给回调函数的元组,为回调函数提供处理参数,arg可以为空。

import os

top_dir = "/home/zhb/workspace/PythonTest"

def find_file(arg,dir_path,files):
    for file in files:
        file_path = os.path.join(dir_path,file)
        print file_path

os.path.walk(top_dir,find_file,())

控制输出,

/home/zhb/workspace/PythonTest/temp#子目录
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.settings#子目录
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt
/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs

图片 1

  • 系统文件重定向
    两种平台都支持文件重定向命令
    所有的控制台命令,都可以在命令后面追加 ">> filepath"来讲输入到控制台打印的信息重定向到指定的文件中,例如:
    find /home/wxn/workspace -type f -name '*.c' | xargs grep "main()" >> /home/wxn/find_result.txt

  • c语言中调用系统的控制台命令
    system("cmd")
    例如:
    system("grep -r "main()" /home/wxn/workspace")

图片 2

3.Reference

Python 模块学习:os模块

Python之os.walk和os.path.walk

 

如果不喜欢上面的风格,可以对控制台窗口的属性进行更改,如背景色、字体大小、颜色等。修改控制台属性的方法:
1、鼠标右击控制台窗口的顶部,出现如下界面:

图片 3

2、点击属性,即可对控制台的不同属性进行更改,如下图所示:

图片 4

常用的DOS命令如下表:

命令格式 功能描述
盘名: 进入到指定的盘的根目录
dir 列出当前控制台所在的路径下的所有文件以及文件夹
cd 路径 进入到指定的路径下
cd / 返回当前路径的根目录
cd .. 返回上一级目录
md 文件夹的名称 在当前所在目录下创建一个指定名称的文件夹
rd 文件夹的名称 删除指定的文件(不能用于删除非空的文件夹)
echo 数据>文件名 创建一个文件并且写入数据
type 文件名 查看指定文件存储的数据
del

文件名|删除指定的文件(del命令如果后面跟的是一个文件夹的名称,则删除指定文件夹的所有文件,注意里面的文件夹是不能删除的)|
|cls|清屏(清除之前执行过的命令)|
|*|通配符,可以匹配任何的文件名|
|上下方向键|回到之前敲过的命令(键盘上操作)|
|set|查看所有的环境变量信息|
|set 环境变量名|查看指定的环境变量|
|set 环境变量名=路径|修改指定的环境变量信息|
|set 环境变量名= |清空指定的环境变量信息|
|set 环境变量名=新路径;%引用的环境变量名%|在原有的环境变量信息基础上添加新的路径信息|
|exit|关闭当前控制台|

注意:在实际开发中我们可能会使用不同的jdk版本调试程序,平常使用不是很频繁,我们只希望在需要使用的时候才使用,然后就不再使用了,那么这时候我们就可以通过上面的set相关命令来配置临时环境变量信息。

记得在电脑上多练习几遍额!!!

<a href=";   <a href=";

本文由星彩网app下载发布于计算机编程,转载请注明出处:常用的DOS命令来了,Python标准模块

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。