新手来了
我刚刚使用 Python/编码工作了几天,但我想创建一个脚本来获取与特定模式对应的文件名的一部分,并将其输出到文本文件。
所以就我而言,假设我有四个这样的 .pdf:
aaa_ID_8423.pdf
bbbb_ID_8852.pdf
ccccc_ID_7413.pdf
dddddd_ID_4421.pdf
(Note that they are of variable length.)
Run Code Online (Sandbox Code Playgroud)
我希望脚本遍历这些文件名,在“ID_”之后和文件扩展名之前获取字符串。
您能否指出可以帮助我的 Python 模块和可能的指南的方向?
有没有办法让Python in
在查找字符串内容时使用至少一个语句的两个条件?
就像是:
if (string1 == "Double" and "2x" in string2):
leverage = "+200"
Run Code Online (Sandbox Code Playgroud) 如果我这样做,下面的代码按预期工作re.search("(\d+)x"
.
但是,如果我添加替代搜索,re.search("(\d+)x|x(\d+)"
我会得到:
TypeError: cannot concatenate 'str' and 'NoneType' objects
Run Code Online (Sandbox Code Playgroud)
码:
fundleverage = None
regex_fundleverage = None
regex_fundleverage = re.search(r"(\d+)x|x(\d+)", instrument_name, flags=re.IGNORECASE)
if funddirection == "Long" and not regex_fundleverage == None:
fundleverage = "+" + regex_fundleverage.group(1) + "00"
if funddirection == "Short" and not regex_fundleverage == None:
fundleverage = "-" + regex_fundleverage.group(1) + "00"
print "Fundleverage: %s" % fundleverage
Run Code Online (Sandbox Code Playgroud)
错误当然是因为我会再做连接海峡"+"
和"00"
用None
.
我的问题是为什么group(1)
在只有一个查找时选择工作re.search()
,但如果有两个替代查找则不起作用.
它搜索的字符串不包含这两种选择"(\d+)x"
和"x(\d+)"
中,只有一个是可能的.
示例str: …
我正在使用正则表达式检索字符串,并且尝试将其与其他字符串连接起来。
错误:
TypeError: cannot concatenate 'str' and '_sre.SRE_Match' objects
Run Code Online (Sandbox Code Playgroud)
例:
original_string = "ABC 4x DEF"
regex = re.search(r"(\d)X|x", original_string)
new_string = "+" + regex + "00"
print "New string: %s" % new_string
Run Code Online (Sandbox Code Playgroud)
new_string
"+400"
如果一切正常,应该是。