我是 Python 新手,正在尝试分析一些数据。因此,我将文件夹中的所有 csv 文件导入并连接到一个数据框中。我正在尝试提取文件名的一部分以用作 header ,经过搜索后,我发现您通常会使用正则表达式。
文件名如下:'Varying Concentration2_20190712-145158_Base Media.csv'
, 'Varying Concentration2_20190712-145158_250 g per l.csv'
, ETC
所以我试图提取的部分是在 _
之后在 .csv
之前。
我已经尝试过:
for fname in all_data:
res = re.findall("(?<=_)(\w+).csv$", fname)
if not res: continue
print (res)
还有"(?<=[0-9]+_)(\w+)"
但它似乎不起作用。
所需的输出将是一个包含 'Base Media'
的列表, '150g per l
'等等。
最佳答案
这是一个避免正则表达式的选项,而是使用基本 split
字符串函数两次:
filename = 'Varying Concentration2_20190712-145158_Base Media.csv'
parts = filename.split('_')
nameonly = parts[len(parts)-1].split('.')[0]
print(nameonly)
输出:
Base Media
如果完整文件名也可能包含点,则可能需要调整此答案。
关于Python提取文件名正则表达式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110503/