1.需求描述
在D:\Files
下有以下文件,如下圖:
要求:
- 將Logan開頭的文件名全部修改為工作文檔
- 其他的文件名稱全部添加前綴"工作文檔_"
實現后的結果如下:
2.實現代碼
# Author:Logan
# Date:2020/3/26 15:52
# IDE:PyCharm
import os
"""
info是一個元組tupple(dirpath, dirnames, filenames)
元組中的三個元素分別是:
dirpath -->> 代表目錄的路徑
dirnames -->> 包含了當前dirpath路徑下所有的子目錄名字(不包含目錄路徑)
filenames -->> 包含了當前dirpath路徑下所有的非目錄子文件的名字(不包含目錄路徑)
"""
path = 'D:\File\\'
def main():
for info in os.walk(path):
for file_name in info[2]:
if file_name.count('Logan'):
os.rename(path + file_name,path + '工作文檔_' + file_name.split('_')[1])
elif file_name.count('工作文檔_'):
pass
else:
os.rename(path + file_name, path + '工作文檔_' + file_name)
if __name__ == '__main__':
main()
上述代碼雖然也能實現,但是有個問題,如果【其他】文件夾下有文件,也會被修改文件名,這顯然不是我們所希望的,所以就有了listdir
,只顯示當前目錄下的文件和文件夾名稱。此處不再寫函數,只是寫了個簡單案例說明用法:
import os
path = 'D:\File\\'
def main():
for file in os.listdir(path):
file_path = os.path.join(path,file)
if os.path.isfile(file_path):
print(file_path)
elif os.path.isdir(file_path):
print('目錄:' + file_path)
if __name__ == '__main__':
main()