Python3---对目标文件夹下的所有文件名以及文件夹名进行去除特定字符os、os.walk()、os.rename()、list、x.replace(x,y)、range()、x.append()

Python3—对目标文件夹下的所有文件名以及文件夹进行去除特定字符(串)。os、os.walk()、os.rename()、list、x.replace(x,y)、range()、x.append()
参考:https://blog.csdn.net/wowocpp/article/details/79460407
https://blog.csdn.net/sinat_31206523/article/details/78824014

1、环境配置
root@kali:~/pywork# clear
root@kali:~/pywork# ls -la /root/testdir/
total 1612
drwxr-xr-x  3 root root   4096 Jun 11 18:09  .
drwxr-xr-x 32 root root   4096 Jun 11 18:09  ..
-rwxrw-rw-  1 root root 620888 Jul 14  2009  1231.jpgxyz
-rwxrw-rw-  1 root root   7419 Aug 30  2016  20160830.wvsxyz
-rwxrw-rw-  1 root root  30208 Feb 15  2017  234.xlsxyz
-rwxrw-rw-  1 root root 169984 May 26  2016  bookmarks4.htmlxyz
drwxr-xr-x  2 root root   4096 Jun 11 18:09  brachdirxyz
-rwxrw-rw-  1 root root 780831 Jul 14  2009  orderDetail_export_2017-02-150.pngxyz
-rwxrw-rw-  1 root root    816 Jul 20  2017  orderExchangeDetail.zipxyz
-rwxrw-rw-  1 root root     72 Jun 11 09:57 'see hell.owmvxyz'
-rwxrw-rw-  1 root root    159 Sep  8  2016  Test.javaxyz
-rwxrw-rw-  1 root root      0 Sep  8  2016  test.txtxyz
-rwxrw-rw-  1 root root   8192 Jun 11 09:30  zifuchuan1.pyxyz
-rwxrw-rw-  1 root root      0 Jun 11 09:27  大大.rvmbxyz
-rwxrw-rw-  1 root root      0 Jun 11 09:28  蜂鸟.mp4xyz
root@kali:~/pywork# ls -la /root/testdir/brachdirxyz/
total 712
drwxr-xr-x 2 root root   4096 Jun 11 18:09 .
drwxr-xr-x 3 root root   4096 Jun 11 18:09 ..
-rwxrw-rw- 1 root root 130311 Feb 26  2017 bookmarks-2017-02-26.jsonxyz
-rwxrw-rw- 1 root root 276015 Jun 15  2017 bookmarks20170615.htmlxyz
-rwxrw-rw- 1 root root    112 Jul 10  2015 drozer_configxyz
-rwxrw-rw- 1 root root 305046 Sep 20  2017 id.txtxyz
root@kali:~/pywork# 
2、对目标目录下的所有文件名与文件夹名中带字符(串)"xyz"进行去除
脚本代码:
root@kali:~/pywork# ls
py_change_dirallfiles_format.py  py_del_dirfileslast_format.py
root@kali:~/pywork# cat py_del_dirfileslast_format.py 
#/usr/bin/python3.6
#--*-- coding:utf-8 --*---

import os

def detect_walk(dir_path):
    for root,dirs,files in os.walk(dir_path):
        for filename in files:#遍历目标文件夹下所有文件
            #print ("\033[1;35m file:%s \033[0m!\n" % filename)
            list_files.append(os.path.join(root,filename))
        for dirname in dirs:#遍历目标文件夹下所有的文件夹
            #print ("dir:%s\n" % dirname)
            list_dirs.append(os.path.join(root,dirname))

'''
def new_filelast_list(list_files):#把所有文件名后面追加xyz
    for new_filesname in list_files:
        new_list_files.append(new_filesname+"xyz")#把所有新的文件名后面追加xyz

def new_dirlast_list(list_dirs):#把所有的文件夹后面追加xyz
    for new_dir in list_dirs:
        new_list_dirs.append(new_dir+"xyz")#把所有新的文件夹后面追加xyz
'''

def del_filelast(list_files):#去除文件名中的字符串xyz
    for new_filename in list_files:
        new_list_files.append(new_filename.replace("xyz",""))

def del_dirlast(list_dirs):#去除文件夹名中的字符串yz
    for new_dir in list_dirs:
        new_list_dirs.append(new_dir.replace("xyz",""))

def renamefiles_list(srcfile,dstfile):#对文件名进行重命名
    for i in range(0,len(list_files)):
        try:
            os.rename(srcfile[i],dstfile[i])#对文件名重命名
        except Exception as e:
            print(e)

def renamedirs_list(srcdir,dstdir):#对文件夹重命名
    for i in range(0,len(list_dirs)):
        try:
            os.rename(srcdir[i],dstdir[i])
        except Exception as e:
            print (e)

if __name__ == "__main__":
    list_files = []#遍历目标目录下所有文件,保存为列表
    list_dirs = []#遍历木钵目录下所有文件夹,保存为列表
    new_list_files = []#所有被改成新的文件名的列表
    new_list_dirs = []#所有被改成新的文件夹的列表

    detect_walk("/root/testdir")#模块遍历目标目录下所有的文件名与目录
    #new_filelast_list(list_files)#模块创建新的文件名
    #new_dirlast_list(list_dirs)#模块创建新的文件夹
    del_filelast(list_files)
    del_dirlast(list_dirs)

    renamefiles_list(list_files,new_list_files)#模块对文件名进行修改
    renamedirs_list(list_dirs,new_list_dirs)#模块对文件夹进行

    print("----------------去除字符串'xyz'前的文件夹名与文件夹名---------")
    print (list_files)
    print(list_dirs)

    print("----------------去除字符串'xyz'后的文件名与文件夹名------------")
    print(new_list_files)
    print(new_list_dirs)
root@kali:~/pywork# 
3、运行两次即可去除字符串xyz(不知啥原因,有待查)
root@kali:~/pywork# ls
py_change_dirallfiles_format.py  py_del_dirfileslast_format.py
root@kali:~/pywork# python3.6 py_del_dirfileslast_format.py 
[Errno 2] No such file or directory: '/root/testdir/brachdirxyz/bookmarks20170615.htmlxyz' -> '/root/testdir/brachdir/bookmarks20170615.html'
[Errno 2] No such file or directory: '/root/testdir/brachdirxyz/bookmarks-2017-02-26.jsonxyz' -> '/root/testdir/brachdir/bookmarks-2017-02-26.json'
[Errno 2] No such file or directory: '/root/testdir/brachdirxyz/drozer_configxyz' -> '/root/testdir/brachdir/drozer_config'
[Errno 2] No such file or directory: '/root/testdir/brachdirxyz/id.txtxyz' -> '/root/testdir/brachdir/id.txt'
----------------去除字符串'xyz'前的文件夹名与文件夹名---------
['/root/testdir/蜂鸟.mp4xyz', '/root/testdir/orderDetail_export_2017-02-150.pngxyz', '/root/testdir/234.xlsxyz', '/root/testdir/orderExchangeDetail.zipxyz', '/root/testdir/大大.rvmbxyz', '/root/testdir/bookmarks4.htmlxyz', '/root/testdir/see hell.owmvxyz', '/root/testdir/1231.jpgxyz', '/root/testdir/20160830.wvsxyz', '/root/testdir/zifuchuan1.pyxyz', '/root/testdir/test.txtxyz', '/root/testdir/Test.javaxyz', '/root/testdir/brachdirxyz/bookmarks20170615.htmlxyz', '/root/testdir/brachdirxyz/bookmarks-2017-02-26.jsonxyz', '/root/testdir/brachdirxyz/drozer_configxyz', '/root/testdir/brachdirxyz/id.txtxyz']
['/root/testdir/brachdirxyz']
----------------去除字符串'xyz'后的文件名与文件夹名------------
['/root/testdir/蜂鸟.mp4', '/root/testdir/orderDetail_export_2017-02-150.png', '/root/testdir/234.xls', '/root/testdir/orderExchangeDetail.zip', '/root/testdir/大大.rvmb', '/root/testdir/bookmarks4.html', '/root/testdir/see hell.owmv', '/root/testdir/1231.jpg', '/root/testdir/20160830.wvs', '/root/testdir/zifuchuan1.py', '/root/testdir/test.txt', '/root/testdir/Test.java', '/root/testdir/brachdir/bookmarks20170615.html', '/root/testdir/brachdir/bookmarks-2017-02-26.json', '/root/testdir/brachdir/drozer_config', '/root/testdir/brachdir/id.txt']
['/root/testdir/brachdir']
root@kali:~/pywork# 
root@kali:~/pywork# 
root@kali:~/pywork# ls -la /root/testdir/
total 1612
drwxr-xr-x  3 root root   4096 Jun 11 18:21  .
drwxr-xr-x 32 root root   4096 Jun 11 18:21  ..
-rwxrw-rw-  1 root root 620888 Jul 14  2009  1231.jpg
-rwxrw-rw-  1 root root   7419 Aug 30  2016  20160830.wvs
-rwxrw-rw-  1 root root  30208 Feb 15  2017  234.xls
-rwxrw-rw-  1 root root 169984 May 26  2016  bookmarks4.html
drwxr-xr-x  2 root root   4096 Jun 11 18:09  brachdir
-rwxrw-rw-  1 root root 780831 Jul 14  2009  orderDetail_export_2017-02-150.png
-rwxrw-rw-  1 root root    816 Jul 20  2017  orderExchangeDetail.zip
-rwxrw-rw-  1 root root     72 Jun 11 09:57 'see hell.owmv'
-rwxrw-rw-  1 root root    159 Sep  8  2016  Test.java
-rwxrw-rw-  1 root root      0 Sep  8  2016  test.txt
-rwxrw-rw-  1 root root   8192 Jun 11 09:30  zifuchuan1.py
-rwxrw-rw-  1 root root      0 Jun 11 09:27  大大.rvmb
-rwxrw-rw-  1 root root      0 Jun 11 09:28  蜂鸟.mp4
root@kali:~/pywork# ls -la /root/testdir/brachdir/
total 712
drwxr-xr-x 2 root root   4096 Jun 11 18:09 .
drwxr-xr-x 3 root root   4096 Jun 11 18:21 ..
-rwxrw-rw- 1 root root 130311 Feb 26  2017 bookmarks-2017-02-26.jsonxyz
-rwxrw-rw- 1 root root 276015 Jun 15  2017 bookmarks20170615.htmlxyz
-rwxrw-rw- 1 root root    112 Jul 10  2015 drozer_configxyz
-rwxrw-rw- 1 root root 305046 Sep 20  2017 id.txtxyz
root@kali:~/pywork# 
root@kali:~/pywork# 
root@kali:~/pywork# python3.6 py_del_dirfileslast_format.py 
----------------去除字符串'xyz'前的文件夹名与文件夹名---------
['/root/testdir/234.xls', '/root/testdir/bookmarks4.html', '/root/testdir/20160830.wvs', '/root/testdir/test.txt', '/root/testdir/1231.jpg', '/root/testdir/orderDetail_export_2017-02-150.png', '/root/testdir/大大.rvmb', '/root/testdir/see hell.owmv', '/root/testdir/orderExchangeDetail.zip', '/root/testdir/Test.java', '/root/testdir/蜂鸟.mp4', '/root/testdir/zifuchuan1.py', '/root/testdir/brachdir/bookmarks20170615.htmlxyz', '/root/testdir/brachdir/bookmarks-2017-02-26.jsonxyz', '/root/testdir/brachdir/drozer_configxyz', '/root/testdir/brachdir/id.txtxyz']
['/root/testdir/brachdir']
----------------去除字符串'xyz'后的文件名与文件夹名------------
['/root/testdir/234.xls', '/root/testdir/bookmarks4.html', '/root/testdir/20160830.wvs', '/root/testdir/test.txt', '/root/testdir/1231.jpg', '/root/testdir/orderDetail_export_2017-02-150.png', '/root/testdir/大大.rvmb', '/root/testdir/see hell.owmv', '/root/testdir/orderExchangeDetail.zip', '/root/testdir/Test.java', '/root/testdir/蜂鸟.mp4', '/root/testdir/zifuchuan1.py', '/root/testdir/brachdir/bookmarks20170615.html', '/root/testdir/brachdir/bookmarks-2017-02-26.json', '/root/testdir/brachdir/drozer_config', '/root/testdir/brachdir/id.txt']
['/root/testdir/brachdir']
root@kali:~/pywork# 
root@kali:~/pywork# ls -la /root/testdir/
total 1612
drwxr-xr-x  3 root root   4096 Jun 11 18:21  .
drwxr-xr-x 32 root root   4096 Jun 11 18:21  ..
-rwxrw-rw-  1 root root 620888 Jul 14  2009  1231.jpg
-rwxrw-rw-  1 root root   7419 Aug 30  2016  20160830.wvs
-rwxrw-rw-  1 root root  30208 Feb 15  2017  234.xls
-rwxrw-rw-  1 root root 169984 May 26  2016  bookmarks4.html
drwxr-xr-x  2 root root   4096 Jun 11 18:22  brachdir
-rwxrw-rw-  1 root root 780831 Jul 14  2009  orderDetail_export_2017-02-150.png
-rwxrw-rw-  1 root root    816 Jul 20  2017  orderExchangeDetail.zip
-rwxrw-rw-  1 root root     72 Jun 11 09:57 'see hell.owmv'
-rwxrw-rw-  1 root root    159 Sep  8  2016  Test.java
-rwxrw-rw-  1 root root      0 Sep  8  2016  test.txt
-rwxrw-rw-  1 root root   8192 Jun 11 09:30  zifuchuan1.py
-rwxrw-rw-  1 root root      0 Jun 11 09:27  大大.rvmb
-rwxrw-rw-  1 root root      0 Jun 11 09:28  蜂鸟.mp4
root@kali:~/pywork# ls -la /root/testdir/brachdir/
total 712
drwxr-xr-x 2 root root   4096 Jun 11 18:22 .
drwxr-xr-x 3 root root   4096 Jun 11 18:21 ..
-rwxrw-rw- 1 root root 130311 Feb 26  2017 bookmarks-2017-02-26.json
-rwxrw-rw- 1 root root 276015 Jun 15  2017 bookmarks20170615.html
-rwxrw-rw- 1 root root    112 Jul 10  2015 drozer_config
-rwxrw-rw- 1 root root 305046 Sep 20  2017 id.txt
root@kali:~/pywork# 

猜你喜欢

转载自blog.csdn.net/xwbk12/article/details/80656148
今日推荐