"C:\Users\Adam\Desktop\Stock Trackers\Stock Tracker WK39 NYC Beauty.xlsx"
我想提取"Stock Tracker WK39"
之后的所有内容,因为这表示公司名称,但是,"WK"
之后的数字可能会根据文件的不同而变化,因此我不能只使用例如:
str.extract('Stock Tracker WK39 (.*)')
如何重写上面的代码,使"39"
成为一个可以表示任何数字的标识符(包括表示第1-9周的个位数),使脚本总是忽略"Stock Tracker WKXX "
之前的所有内容,只获取白色后面的内容?
请记住,“纽约美容”之间有一个空间,但会有其他公司不会,例如"ProformaUnlimited"
是另一家公司。
4条答案
按热度按时间n7taea2i1#
我会使用os模块来获取你的文件名,然后我们可以从中提取你想要的信息,既然你说字符串应该总是以“Stock Tracker WK”开头,我就使用这个假设。
注意:如果您在此文件夹中有不同命名约定的文件,您可能会看到空列表元素
j0pj023g2#
你可以使用一个正则表达式来精确地提取这些值。这里有一个例子https://regex101.com/r/6u2xBz/1
代码示例:
jk9hmnmh3#
紧凑型:
p4rjhz4m4#
我确信其他人会提出正则表达式的解决方案,但是如果你不想使用正则表达式,并且(假设)WK39之前的部分不会更改为包含另一个WK,你可以通过几个拆分来实现,例如:
对WK进行第一次拆分,得到
39 NYC Beauty.xlsx
,第二次拆分,得到NYC Beauty.xlsx
这利用了split的
maxsplit
参数,使得例如.split(' ', 1)
仅在其遇到的第一个空格上进行拆分,从而使NYC Beauty.xlsx
作为单个字符串离开。