按文件名或文件内容搜索,获取某一路子下的兼具文件名新闻

贴代码了,这里运用的是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命令,就足以轻松地做到绝超过5三%的不足为奇操作。

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:\Users\Public\Desktop\test.txt");
            FileStream fs = File.Open(@"C:\Users\Public\Desktop\test.txt", FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(message);  //这里是写入的内容
            sw.Close();
            fs.Close();
        }
    }
}

DOS命令的交互方式需求一个说了算台窗口,打开控制台有以下二种方法:

按文件名或文件内容搜索,获取某一路子下的兼具文件名新闻。二.模块使用

 

  • 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()"

方式一:初始(桌面左下角)–>全体程序(windows十在“全体应用”)–>附属类小部件–>命令提醒符(windows十在“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平台
'\r\n'#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

二、点击属性,即可对控制台的不及属性进行变更,如下图所示:

亚洲必赢官网 4

常用的DOS命令如下表:

命令格式 职能描述
盘名: 进入到钦命的盘的根目录
dir 列出近来控制台所在的路线下的装有文件以及文件夹
cd 路径 进入到钦点的途径下
cd / 回来当前路线的根目录
cd .. 回到上超级目录
md 文件夹的名称 在方今所在目录下创建多少个点名名称的文书夹
rd 文件夹的称谓 去除钦定的文书(不能够用来删除非空的文书夹)
echo 数据>文件名 创制二个文件同时写入数据
type 文件名 查看钦定文件存款和储蓄的数量
del

文本名|删除钦定的文书(del命令假如前面跟的是3个文书夹的称谓,则删除内定文件夹的兼具文件,注意里面包车型大巴文件夹是不可能去除的)|
|cls|清屏(清除在此之前实施过的指令)|
|*|通配符,能够包容任何的文本名|
|上下方向键|回到以前敲过的下令(键盘上操作)|
|set|查看全体的环境变量新闻|
|set 环境变量名|查看钦赐的条件变量|
|set 环境变量名=路径|修改钦定的环境变量新闻|
|set 环境变量名= |清空钦点的环境变量音讯|
|set
环境变量名=新路径;%引用的环境变量名%|在本来的环境变量音信基础上添加新的路子消息|
|exit|关闭当前控制台|

注意:在事实上开发中大家兴许会选择不一致的jdk版本调节和测试程序,平时使用不是很频仍,我们只愿目的在于急需接纳的时候才使用,然后就不再行使了,那么此时大家就足以经过上边的set相关命令来配置近年来环境变量新闻。

纪念在微型总括机上多演练五次额!!!

<a
href=”;   <a
href=”;

网站地图xml地图