在python中有很多强大的模块,其中我们经常要使用的就是OS模块,OS模块提供了超过200个方法来供我们使用,并且这些方法都是和数据处理相关的,这里介绍下重命名这个方法。
OS的重命名方法是os.rename,我用的ipython,这个玩意很是强大,只要按下TAB键,可以帮助我们自动对齐和列出可以使用的方法,发现有2个方法,分别是rename和renames,2个方法,前面的rename使用过无数次,但是后面的renames还没有使用过,今天有空,想看看到底有和用处---顾名思义,我觉得可能是批量修改吧,哈哈,下面我们来看下演示效果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
[root@localhost ~] # ipython 进入ipython工具 Python 2.6 (r26: 66714 , Dec 17 2010 , 11 : 17 : 00 ) Type "copyright" , "credits" or "license" for more information. IPython 0.10 . 1 - - An enhanced Interactive Python. ? - > Introduction and overview of IPython's features. % quickref - > Quick reference. help - > Python's own help system. object ? - > Details about 'object' . ? object also works, ?? prints more. In [ 1 ]: import os 导入OS模块 In [ 2 ]: os.mkdir( "/tmp/test" ) 新建目录 In [ 3 ]: os.listdir( "/tmp/test" ) Out[ 3 ]: [] In [ 4 ]: os.mkdir( "/tmp/test/test1" ) 新建目录 In [ 5 ]: os.listdir( "/tmp/test/" ) Out[ 5 ]: [ 'test1' ] In [ 6 ]: os.listdir( "/tmp/test/test1" ) Out[ 6 ]: [] In [ 7 ]: os.ren 按Tab键自动对齐的效果 os.rename os.renames In [ 7 ]: os.rename( "/tmp/test/test1" , "/tmp/test/test2" ) 重命名目录名 In [ 8 ]: os.listdir( "/tmp/test/" ) 修改成功 Out[ 8 ]: [ 'test2' ] In [ 9 ]: os.rename 按Tab键自动对齐的效果 os.rename os.renames In [ 9 ]: os.rename( "/tmp/test/test2" , "/tmp/test1/test3" ) 大家注意看下这个命令和上面的命令的区别,我不仅仅是要重命名最后的目录名,连前面的目录也要重命名 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OSError Traceback (most recent call last) / root / <ipython console> in <module>() OSError: [Errno 2 ] No such file or directory 嘿嘿,报错了,说没有这个目录, 下面在看下下面这个强大的方法吧,哈哈 In [ 10 ]: os.renames( "/tmp/test/test2" , "/tmp/test1/test3" ) In [ 11 ]: os.listdir( "/tmp/test1/test3" ) Out[ 11 ]: [] 嘿嘿,居然成功了,真是强大啊,子目录能改,上级目录也能改,这个法子也许对我们工作会有帮助吧。 In [ 12 ]: os.listdir( "/tmp/test1" ) Out[ 12 ]: [ 'test3' ] |
同样的,他可以修改目录名,不知道能否连文件名,目录名一起修改呢,下面我们再来看下效果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
In [ 22 ]: os.listdir( "/tmp/test1/test3/" ) Out[ 22 ]: [ 'test' ] 新建一个空文件 In [ 23 ]: cat / tmp / test1 / test3 / test In [ 24 ]: os.renam os.rename os.renames In [ 24 ]: os.renames( "/tmp/test1/test3/test" , "/tmp/test/test2/test3" ) 批量修改文件名和目录名,嘿嘿,果然也成功了。 In [ 25 ]: os.listdir( "/tmp/test/test2/test3" ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OSError Traceback (most recent call last) / root / <ipython console> in <module>() OSError: [Errno 20 ] Not a directory: '/tmp/test/test2/test3' In [ 26 ]: os.listdir( "/tmp/test/test2/" ) 浏览效果 Out[ 26 ]: [ 'test3' ] In [ 27 ]: |
希望本文能对大家的工作和学习有帮助,如果感兴趣,可以自己去试验下。。。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!