威尼斯人线上娱乐

按文件名或文件内容搜索,获取某一路子下的富有文件名音讯

14 4月 , 2019  

贴代码了,那里运用的是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命令,就足以轻松地形成绝当先四分之二的家常操作。

一.模块简介

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

方式一:初步(桌面左下角)–>全数程序(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平台
'\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

 

假使不喜欢上边的风格,可以对控制台窗口的习性举办转移,如背景象、字体大小、颜色等。修改决定台属性的点子:
一、鼠标右击控制台窗口的顶部,出现如下界面:

威尼斯人线上娱乐 3

二、点击属性,即可对控制台的例外属性举行改动,如下图所示:

威尼斯人线上娱乐 4

常用的DOS命令如下表:

命令格式 作用描述
盘名: 进入到钦赐的盘的根目录
dir 列出近期控制台所在的不二秘籍下的具有文件以及文件夹
cd 路径 进入到钦命的门径下
cd / 回到当前路线的根目录
cd .. 重返上一级目录
md 文件夹的称谓 在眼下所在目录下创立四个点名名称的文本夹
rd 文件夹的称呼 删去钦命的文本(无法用来删除非空的公文夹)
echo 数据>文件名 开创1个文件同时写入数据
type 文件名 翻看钦点文件存款和储蓄的多少
del

文本名|删除钦点的公文(del命令借使前面跟的是二个文书夹的称呼,则删除钦命文件夹的富有文件,注意里面包车型地铁文本夹是不能够去除的)|
|cls|清屏(清除此前实施过的一声令下)|
|*|通配符,能够包容任何的文件名|
|上下方向键|回到在此以前敲过的授命(键盘上操作)|
|set|查看全数的环境变量信息|
|set 环境变量名|查看内定的条件变量|
|set 环境变量名=路径|修改钦命的环境变量新闻|
|set 环境变量名= |清空钦点的环境变量音讯|
|set
环境变量名=新路径;%引用的环境变量名%|在原本的环境变量音信基础上添加新的不贰法门信息|
|exit|关闭当前决定台|

注意:在骨子里费用中大家兴许会采纳不一样的jdk版本调节和测试程序,经常使用不是很频繁,咱们只希望在须求使用的时候才使用,然后就不再利用了,那么此时大家就能够透过上面包车型地铁set相关命令来安插最近环境变量音讯。

记得在微型总计机上多练习两次额!!!

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


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图