在 python 中提取部分匹配的字符串
extracting a partially matched string in python
我有一个文件夹,里面的文件都命名为
“12345input789”
“12345output291”
我想找到起始位(“12345”)匹配的每一对文件并对这两个文件执行一些操作
for file_name in os.listdir(directory):
if "input" in filename:
input = os.path.join(directory, file_name)
# how do i extract the output name string here
else:
continue
提前致谢。
您可以将所有文件名保存在两个词典中:
inputs, outputs = {}, {}
for file_name in os.listdir(directory):
if "input" in filename:
pre, _, post = filename.partition("input")
inputs[pre] = filename
elif "output" in filename:
pre, _, post = filename.partition("output")
outputs[pre] = filename
# Now you can iterate over all inputs:
for prefix, input_filename in inputs.items():
output_filename = outputs[prefix]
do_stuff(input_filename, output_filename)
如果输入文件没有匹配的输出文件,这当然会崩溃,因此请确保不是这种情况,或者处理它。
我有一个文件夹,里面的文件都命名为
“12345input789”
“12345output291”
我想找到起始位(“12345”)匹配的每一对文件并对这两个文件执行一些操作
for file_name in os.listdir(directory):
if "input" in filename:
input = os.path.join(directory, file_name)
# how do i extract the output name string here
else:
continue
提前致谢。
您可以将所有文件名保存在两个词典中:
inputs, outputs = {}, {}
for file_name in os.listdir(directory):
if "input" in filename:
pre, _, post = filename.partition("input")
inputs[pre] = filename
elif "output" in filename:
pre, _, post = filename.partition("output")
outputs[pre] = filename
# Now you can iterate over all inputs:
for prefix, input_filename in inputs.items():
output_filename = outputs[prefix]
do_stuff(input_filename, output_filename)
如果输入文件没有匹配的输出文件,这当然会崩溃,因此请确保不是这种情况,或者处理它。