<p>使用<a href="https://docs.python.org/3/library/stdtypes.html#str.rpartition" rel="nofollow noreferrer">str.rpartition()</a>解决任务的示例。我必须重新实现Max()和LJust()函数,因为您有<code>pyspark</code>,并且它对内置<code>max()</code>和<code>str.ljust()</code>有不同的实现</p>
<p>运行我的代码后,您可以在代码中进一步使用<code>res2</code>或<code>res3</code><code>res2</code>包含格式为<code>[source, extracted]</code>的所有行,<code>res3</code>只包含提取的值</p>
<p><a href="https://tio.run/##lVE9b8MgFNz5FW8DWidOHHWplGxdqrZLR9dCjv2sEGFsAa6c/HkXyEfTbH0MBu7eHe/cH9yu06tpqrGB93Jkij8T8NXCGj46jfHQdAYQpAZ1AkPJxnOkjSSI@AbaX/iicRIw6AajoSUk@Ly9DtYxm4A@m51hG0QVamY5bNagAZVFf/sI1K8HYBpmZ5wTorx6HttpWm8bm7bapeW2SuvS4TpbZMtFlj2lje2FdZ1B4bHxcBSq1YIm/2m01W4QCr/F1tbChuaCGLTBH@emL42TTnaa0ZTyfLYsbvKKxCwwc1wkgBcw7gPjKHumEp@A5QVpyzFMFf5DHuZEfivFSW@kdox@doOpkM7VPuQYmnjMyNfL6ExZOazplf2l6XzfSc3ya@5/Wqjf1NHHI3WwCk8ufMT@u4pDLu8eHQnT9AM" rel="nofollow noreferrer" title="Python 3 – Try It Online">Try it online!</a></p>
<pre><code>def Max(l):
m = None
for e in l:
if m is None or e > m:
m = e
return m
def LJust(s, n):
return s if len(s) >= n else s + ' ' * (n - len(s))
l = [
'/dbfs/mnt/abc/date=20210225/fsp_store_abcxyz_lmn_',
'/dbfs/mnt/abc/date=20210225/fsp_store_schu_lev_bsd_s_',
]
res = [e.rpartition('/')[-1] for e in l]
res2 = [[e0, e1] for e0, e1 in zip(l, res)]
maxl = Max([len(e) for e in l])
print('Source'.ljust(maxl) + ' Extracted')
print('\n'.join([LJust(s, maxl) + ' ' + d for s, d in res2]))
res3 = [e1 for e0, e1 in res2]
</code></pre>
<p>输出:</p>
<pre><code>Source Extracted
/dbfs/mnt/abc/date=20210225/fsp_store_abcxyz_lmn_ fsp_store_abcxyz_lmn_
/dbfs/mnt/abc/date=20210225/fsp_store_schu_lev_bsd_s_ fsp_store_schu_lev_bsd_s_
</code></pre>