<p>请尝试以下代码:</p>
<pre><code>import os
OLD_DIR = './old'
NEW_DIR = './new'
for file_name in os.listdir(OLD_DIR):
old_file = os.path.join(OLD_DIR, file_name)
if file_name.count('_') != 4:
print(f'ignoring {old_file}')
continue
_, _, _, token, _ = file_name.split('_')
new_path = os.path.join(NEW_DIR, token)
os.makedirs(new_path, exist_ok=True)
new_file = os.path.join(new_path, file_name)
print(f'moving {old_file} to {new_file}')
os.rename(old_file, new_file)
</code></pre>
<h2>输出</h2>
<pre><code>moving ./old/reg_001_0213_token1_cyc2.tif to ./new/token1/reg_001_0213_token1_cyc2.tif
moving ./old/reg_001_0213_token2_cyc2.tif to ./new/token2/reg_001_0213_token2_cyc2.tif
ignoring ./old/foo
</code></pre>
<p>请参见:</p>
<ul>
<li><a href="https://docs.python.org/3/library/stdtypes.html#str.split" rel="nofollow noreferrer">str.split</a></li>
<li><a href="https://docs.python.org/3/library/stdtypes.html#str.count" rel="nofollow noreferrer">str.count</a></li>
<li><a href="https://docs.python.org/3/library/os.html#os.listdir" rel="nofollow noreferrer">os.listdir</a></li>
<li><a href="https://docs.python.org/3/library/os.path.html#os.path.join" rel="nofollow noreferrer">os.path.join</a></li>
<li><a href="https://docs.python.org/3/library/os.html#os.makedirs" rel="nofollow noreferrer">os.makedirs</a></li>
<li><a href="https://docs.python.org/3/library/os.html#os.rename" rel="nofollow noreferrer">os.rename</a></li>
</ul>