<p>如果您试图替换shell脚本,那么您的Python脚本可能需要执行以下操作</p>
<ol>
<li>列出目录的内容以获取文件名</李>
<li>从文件名中提取日期(假设正则表达式模式匹配<code>\d{8}</code>足以提取日期)</李>
<li>按提取日期对文件进行排序或分组</李>
<li>迭代这些组以执行某些操作</李>
</ol>
<pre><code>import pathlib
import re
from collections import defaultdict
date_pattern = re.compile(r"\d{8}")
target_dir = pathlib.Path("myfolder")
# Files is a dictionary mapping a date to the list of files with that date
files = defaultdict(list)
for child in target_dir.iterdir():
# Skip directories
if child.is_dir():
continue
match = date_pattern.search(child.name)
# Skip files that do not match the date pattern
if match is None:
continue
file_date = match.group()
files[file_date].append(child)
for date, names in files.items():
for filename in names:
# Do something
print(date, filename)
</code></pre>
<h2>编辑:按日期排序</h2>
<p>要按日期排序,可以修改最后一个代码块</p>
<pre><code>for date in sorted(files):
for filename in files[date]:
# Do something
print(date, filename)
</code></pre>
<p>您也可以使用<code>for date, names in sorted(files.items(), key=lambda d: d[0]):</code></p>