Python

按特定順序處理文件

  • June 11, 2019

我在一個文件夾中有 40k 張圖像。文件名遵循以下模式:

1558058263_18ea873ddcf8c65e.jpg
1558408930_63c29ce4462ec194.jpg 
1558062887_18ea873ddcf8c65e.jpg

在此文件名的第一部分是時間戳,第二部分是生成圖像的機器 ID。

我想僅根據時間戳按順序處理這些文件中的每一個。如何按順序獲取文件進行處理。我正在使用 python3 來選擇文件。目前程式碼如下:

for root, dirs, files in os.walk(path):
               for name in files:
                       img=fr.load_image_file('/home/ubuntu/faces/' + name)

在我看來,您可以使用sort()orsorted()函式(來自Stack Overflow):

# ...
for root, dirs, files in os.walk(path):
  files.sort()
  for name in files:
     print(name)

或者

# ...
for root, dirs, files in os.walk(path):
  for name in sorted(files):
     print(name)

您可以嘗試通過 lambda (UNTESTED) 進行排序:

for root, dirs, files in os.walk(path):
   for name in sorted(files,  key=lambda x: int(re.search(r'\d+', x).group())):
       img=fr.load_image_file('/home/ubuntu/faces/' + name)

引用自:https://unix.stackexchange.com/questions/524193