SagerXiao's Blog

Restart of an old programmer

Python循环遍历所有文件并改名

我希望将某个目录下的所有jpeg文件改名为jpg结尾的文件,可以利用os.walk和os.rename两个功能

walk all files in special directory
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python
import os

def walkDir(rootdir=None):
    print rootdir
    count = 0
    for parent, dirnames, filenames in os.walk(rootdir):
        #for dirname in dirnames:
        #    print "parent is:" + parent
        #    print "dirname is:" + dirname
        for filename in filenames:
            if filename[-5:] == ".jpeg":
                src_file = os.path.join(parent, filename)
                dest_file = src_file[:-5] + ".jpg"
                os.rename(src_file, dest_file)
                count += 1
    print 'Rename total file count is:', count

def main():
    walkDir(os.getcwd())

if __name__ == "__main__":
    main()

利用walk还可以做很多其他的事情,例如对所有python源代码进行编译,以便发布打包的时候使用遍以后的二进制文件,而不是源代码。 可以使用如下代码:

Compile python source code
1
py_compile.compile(filename)

Comments