我撰寫了一個代碼,它創建了一個字典,該字典將當前路徑中檔案夾的所有絕對路徑存盤為鍵,并將其所有檔案名分別存盤為值。此代碼僅適用于具有僅包含檔案影像的檔案夾的路徑。這里:
import os
import re
# Main method
the_dictionary_list = {}
for name in os.listdir("."):
if os.path.isdir(name):
path = os.path.abspath(name)
print(f'\u001b[45m{path}\033[0m')
match = re.match(r'/(?:[^\\])[^\\]*$', path)
print(match)
list_of_file_contents = os.listdir(path)
print(f'\033[46m{list_of_file_contents}')
the_dictionary_list[path] = list_of_file_contents
print('\n')
print('\u001b[43mthe_dictionary_list:\033[0m')
print(the_dictionary_list)
問題是,我希望這本字典只存盤最后一個檔案夾名稱作為鍵而不是它的絕對路徑,所以我計劃使用這個 re /(?:[^\\])[^\\]*$,它將負責獲取姓氏(檔案或檔案夾從給定的路徑),然后在 for 回圈中將這些姓氏添加為字典中的鍵。
我想先測驗上面的代碼,看看它是否在做我想要的,但似乎并非如此,match變數的值None在每次迭代中都變成了,這對我來說沒有意義,其他一切正常。
所以我想知道我在這里做錯了什么。
uj5u.com熱心網友回復:
我強烈建議使用內置庫pathlib。看來您對該f.name部分感興趣。這是一個備忘單。

uj5u.com熱心網友回復:
我決定重寫上面的代碼,以防只想將它應用于當前目錄(該程式所在的目錄)。
import os
# Main method
the_dictionary_list = {}
for subdir in os.listdir("."):
if os.path.isdir(subdir):
path = os.path.abspath(subdir)
print(f'\u001b[45m{path}\033[0m')
list_of_file_contents = os.listdir(path)
print(f'\033[46m{list_of_file_contents}')
the_dictionary_list[subdir] = list_of_file_contents
print('\n')
print('\033[1;37;40mThe dictionary list:\033[0m')
for subdir in the_dictionary_list:
print('\u001b[43m' subdir '\033[0m')
for archivo in the_dictionary_list[subdir]:
print(" ", archivo)
print('\n')
print(the_dictionary_list)
如果用戶希望通過雙擊特定位置來運行程式(我的個人情況),這將非常有用
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/399161.html
