编写pytohn脚本时通常需要批处理。

列出指定目录下的所有文件/文件夹

os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表,但有个很明显的缺点,它的默认顺序不是有序的或者说不是通常的顺序(不知道用啥排的)。

由于返回值是list类型,所以可以使用sort()

import os

path = "./Pictures/images/"
files = os.listdir(path)
for filename in files:
print(filename)

结果(可见此时并非有序):

现进行排序,sort是根据字典序排,为了更加准确,应将字符串转换为数字排序。

import os

path = "./Pictures/images/"
files = os.listdir(path) #files.sort()
files.sort(key = lambda x:int(x[:-4])) for filename in files:
print(filename)

处理文件名

1、去除前导零

import os

path = "./Pictures/images/"
files = os.listdir(path) #files.sort()
files.sort(key = lambda x:int(x[:-4])) for filename in files:
filename = str(int(filename[:-4])) + ".jpg"
print(filename)

2、列出包含指定字符串的文件

import os

path = "./Pictures/images/"
files = os.listdir(path) files.sort(key = lambda x:int(x[:-4])) for filename in files:
if "" in filename:
print(filename)

3、列出以指定字符串开头或结尾的文件

import os

path = "./Pictures/images/"
files = os.listdir(path) files.sort(key = lambda x:int(x[:-4])) print("start with \"001\"")
for filename in files:
if filename.startswith(""):
print(filename) print("end with \"2.jpg\"")
for filename in files:
if filename.endswith("2.jpg"):
print(filename)

完整的程序:

将images中的文件经均值模糊后保存到images_blur,对应的文件名不变。

import os
import cv2
import numpy as np def solve():
input_dir = "./Pictures/images/" # 保存截取的图像目录
output_dir = "./Pictures/images_blur" # 读取图片目录表
image_list=os.listdir(input_dir) #获得文件名
image_list.sort()
index = 1
for file in image_list:
print('正在处理图像: %s' % index)
img_path = input_dir + file
print(img_path)
img = cv2.imread(img_path) img = cv2.blur(img, (3,3)) cv2.imwrite(output_dir + '/' + file,img)
print(output_dir + '/' + file) index += 1 if __name__ == '__main__':
solve()

参考链接:

1、Python中os.listdir的排序问题  https://www.cnblogs.com/jins-note/p/9550388.html

2、python版的文件批量读写和保存等 https://blog.csdn.net/sinat_36458870/article/details/78825571

python中os.listdir( )函数读取文件夹的更多相关文章

  1. Python使用os.listdir()函数来获得目录中的内容

    摘自:http://it.100xuexi.com/view/otdetail/20130423/057606dc-7ad1-47e4-8ea6-0cf75f514837.html   1.在Pyth ...

  2. Python使用os.listdir()函数来得目录内容的介绍

    Python编程语言是计算机语言中常用的语言,以下的文章就是介绍在Python编程语言中使用os.listdir()函数来获得目录中的相关内容的介绍,如果你对其相关的实际操作有兴趣的话,你就可以观看以 ...

  3. Python中根据时间自动创建文件夹

    导语 ​ 电脑桌面文件太多查找起来比较花费时间,并且凌乱的电脑桌面也会影响工作心情,于是利用python根据时间自动建立当日文件夹,这样就可以把桌面上文件按时间进行存放. 代码实现 # _*_codi ...

  4. python中os模块函数方法详解最全最新

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) os.chdir("dirname") 改 ...

  5. Python中os.listdir的排序问题

    上周应别人要求,使用python批量修改文件名称.文件名有规律,当时就用了一个函数直接精确的用文件名替换了.后来想直接可以用listdir来遍历每个文件来修改更加通用一些.但是看了os.listdir ...

  6. 在系统中使用read函数读取文件内容

    read函数(读取文件) read函数可以读取文件.读取文件指从某一个已打开地文件中,读取一定数量地字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用. 使用格式如下: number = ...

  7. python中os模块的一些小总结

    (一)os模块的应用小总结 os.name: 获取当前系统平台,Windows下返回'nt',Linux下返回'posix'.   os.linesep: 获取当前平台使用的行终止符.Windows下 ...

  8. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  9. Python按顺序读取文件夹中文件

    参考资料: https://blog.csdn.net/qq_22227123/article/details/79903116 https://blog.csdn.net/merdy_xi/arti ...

随机推荐

  1. Linux/Unix中的命令提示符prompt

    用惯了DOS的伙计刚用Unix时最想干的事情就是想把Unix搞得像DOS一些, 其中的一条就是把Unix的提示符设置成$p$g那样的.下面就说一说做的方法. 不同的SHELL设置的方法不同,比较方便的 ...

  2. WSAStartup()函数的使用

    int WSAStartup( __in WORD wVersionRequested, __out LPWSADATA lpWSAData ); WSAStartup 格  式: int PASCA ...

  3. HDU - 5094 Maze(状压+bfs)

    Maze This story happened on the background of Star Trek. Spock, the deputy captain of Starship Enter ...

  4. Json.net的常用语句JsonConvert.SerializeObject(对象)

    在ajax的已不请求中,常常返回json对象.可以利用json.net给我们提供的api达到快速开发. 例子: using System;using System.Collections;using ...

  5. JSP 标准标签库(JSTL)(菜鸟教程)

    菜鸟教程 JSTL 1.1 与 JSTL 1.2 之间的区别?如何下载 JSTL 1.2? JSTL 1.2 中不要求 standard.jar 包. 您可以在 Maven 中央仓库中找到它们. ht ...

  6. 洛谷P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)

    传送门 先坑着,联赛活着回来的话我就写(意思就是我绝对不会写了) //minamoto #include<cstdio> #include<cmath> #include< ...

  7. css清除浮动的方法总结

    在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了,下面总结8种清除浮动的方法,测试已通过 ie chrome firefox opera,需要的朋友可以参考下     清除浮动是每一个 we ...

  8. 两数相加LeetCode

    给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...

  9. git clone 指定新建本地库位置

  10. NET Core Hosting

    ASP.NET Core 运行原理解剖[1]:Hosting   ASP.NET Core 是新一代的 ASP.NET,第一次出现时代号为 ASP.NET vNext,后来命名为ASP.NET 5,随 ...