怎么利用python实现windows的批处理及文件夹操作
今天就跟大家聊聊有关怎么利用python实现windows的批处理及文件夹操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1.批量处理
所谓的批处理就是批量处理cmd里面的命令。
python要想实现批处理功能需要导入os库,然后利用批处理的命令为os.system(cmd_line)其中cmd_line是输入cmd里面的命令。
import os# 批量处理的exe文件EXE_PATH="C:\\Users\\AAA\\Desktop\\0001\\TAppDecoder.exe"h365_dir="D:\\YUVView\\media_h365.h365"outyuv_dir=".yuv"#利用标识符%s,和“%s”分别表示需要运行的exe文件和需要传入的路径#cmd_line 为cmd输入的命令(其中exe,和路径用标识符导入)cmd_line='%s -b "%s" -o "%s"' %(EXE_PATH,h365_dir,outyuv_dir)#ret 是0则证明cmd运行成功,是1则证明运行失败ret=os.system(cmd_line)
2. 文件夹操作
2.1 读取文件中的文件名
读取文件中的文件名直接用for file in os.listdir(path)就能读取path路径中所有的文件名。如果需要去除文件名的后缀首先需要输入from pathlib import Path 导入Path库,然后输入Path(file_path).stem其中file_path 为文件的路径。
import os#导入的Path,可以读取除去后缀名后的文件名并以str形式保存from pathlib import Path # 需要读取的文件目录path="******"somethings=os.listdir(path)for file_1 in somethings: #如果是windows系统用"\\" 如果是linux系统用"/",注:以下以windows系统为例 #这里是更新目录路径 到path的子目录路径 path_1=path+"\\"+file_1 somethings_1=os.listdir(path_1) # r如果只有两层目录到此位置,如果有三层乃至更多需要不断增加迭代层数。 for file_2 in somethings: #这时候的file_2就是带有后缀名的文件。 file_2 file_2path=path_1+"\\"+file_2 #为了获得file_2的名字(没有后缀名)filename类型为str filename=Path(file_2path).stem # 取filename的前两个字符 filename[0:1]
2.2 创建文件夹
首先用os.path.exists(path)判断是否存在(返回0代表不存在),创建文件夹使用os.makedirs(path)。
import os# 如果没有path文件夹,就建一个文件夹path="*****"if not os.path.exists(path): os.makedirs(path)
2.3、获取某指定目录下的所有文件的列表
def getFileList( p ): p = str( p ) if p=="": return [ ] p = p.replace( "/","\\") if p[ -1] != "\\": p = p+"\\" a = os.listdir( p ) b = [ x for x in a if os.path.isfile( p + x ) ] return bprint getFileList( "C:\\" )
2.4、将一个路径名分解为目录名和文件名两部分
fpath , fname = os.path.split( "你要分解的路径")
例如:
a, b = os.path.split('ZC/Download/data/zc.txt' ) #以最后一个/为界分割print aprint b
显示:
ZC/Download/data
c.txt
看完上述内容,你们对怎么利用python实现windows的批处理及文件夹操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341