所以我有很多数据文件,它们的名字类似于这样:
lvh_GTV_TwoField-3-401-86.txt
从一个文件到另一个文件的东西是数字86
和GTV
.
我正在尝试使用此代码来区分文件:
f.split('-')[3]
如果我没记错的话,这应该在-
处拆分文件,然后是第三个,即 86。就我而言,我真的很想使用int(f.split('-')[3])
,因为我需要根据另一个数字引用它,但是,当在第 3 个数字拆分时,输出实际上是86.txt
左右,因此我不能将其作为整数。
所以我的问题是:如何拆分文件,所以我只使用值 86,而不是.txt
扩展名?
提前谢谢。
您也可以使用os.path.splitext
函数删除扩展:
import os
os.path.splitext(f)[0].split('-')[3]
或者,更详细地说,
base, ext = os.path.splitext(f)
base.split('-')[3]
鉴于这是非常可控的,你可以splice
字符串的结果,所以像这样:
f.split('-')[3][:-4] # '86', take all chars except the last 4 (.txt)
使用 PyPI 包parse
from parse import parse
parse("lvh_{}_TwoField-3-401-{:d}.txt", "lvh_GTV_TwoField-3-401-86.txt")[1]
# => 86 (as an int)
使用 Python 的内置 RegExp 库:
import re
m = re.match(
"lvh_.+_TwoField-3-401-(?P<the_number>d+).txt",
"lvh_GTV_TwoField-3-401-86.txt"
)
the_number = int(m.group('the_number'))