我在
python
中有以下场景。我想检查当前工作目录和该目录中存在的文件并创建一个变量。
我已经做了如下
import os
# current working directory
print(os.getcwd())
# files present in that directory
dir_contents = os.listdir('.')
# below is the output of the dir_contents
print(dir_contents)
['.test.json.crc', '.wf_list_dir_param.py.crc', 'test.json', 'wf_list_dir_param.py']
现在,我想从
dir_contents
列表中提取 wf_list_dir
作为变量。
我需要做以下事情
1) find out the elements that start with `wf` and end with `param.py`
2) extract everything before `_param.py` as a variable
我该怎么做?
以下是如何使用 Python 实现目标的方法:
import os
current_dir = os.getcwd()
print("Current Directory:", current_dir)
dir_contents = os.listdir('.')
print("Directory Contents:", dir_contents)
filtered_files = [f for f in dir_contents if f.startswith('wf') and f.endswith('param.py')]
# Extract everything before '_param.py'
variables = [f.split('_param.py')[0] for f in filtered_files]
print("Extracted Variables:", variables)
我认为最简单的方法是使用
re
模块,但您也可能只考虑 str.startswith()
和 str.endswith()
作为起点。
无论如何,给定文件列表,您可以使用像
r"wf_(.+)_param\.py$"
这样的正则表达式模式来识别匹配项并挑选出您想要的部分。
也许喜欢:
import re
filenames = [".test.json.crc", ".wf_list_dir_param.py.crc", "test.json", "wf_list_dir_param.py"]
pattern = re.compile(r"wf_(.+)_param\.py$")
for text in filenames:
match = pattern.search(text)
if match:
print(match.group(1))