我有python代码,其中有一个输入参数。另一个应用程序将传递参数。这是要求。参数将像这样传递。
从以上参数中,我需要提取“ abc_”或“ abc”。或“ abcded_”,然后转到目录并搜索文件。
我很难找到可以做到这一点的功能。
答案 0 :(得分:1)
如果仅使用“ _”和“。”,则可以使用re.search:
"_readableState":{
"objectMode":true,
"highWaterMark":16,
"buffer":{
"head":null,
"tail":null,
"length":0
},
"length":0,
"pipes":null,
"pipesCount":0,
"flowing":null,
"ended":false,
"endEmitted":false,
"reading":false,
"sync":false,
"needReadable":true,
"emittedReadable":false,
"readableListening":false,
"resumeScheduled":false,
"destroyed":false,
"defaultEncoding":"utf8",
"awaitDrain":0,
"readingMore":false,
"decoder":null,
"encoding":null
},
"readable":true,
"domain":null,
"_events":{
},
"_eventsCount":2,
....
....
....
祝你好运
---校正---
最好使用正则表达式获取除数字以外的所有字符:
import re
a = "test.123.txt"
regex = r"([0-9].*)"
m = re.search(regex, a) # match from any digit to end
m.group(1) # ->'123.txt'
答案 1 :(得分:1)
可能的切片解决方案
def extract_prefix(filename):
# list of separators
separators = ['.', '_', '-']
for sep in separators:
# rid off file extension
if sep in filename[:-4]:
# slicing, including sep (+1)
return filename[:filename.find(sep) + 1]
return None
a = "test_123.txt"
prefix = extract_prefix(a)
print(prefix)