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#