问题描述
Data20210608_FL_.xlsx
Data20210608_FLFR_.xlsx
Data20210510-fl_.xlsx
Data20210510-flfr_.xlsx
Data20210608_LRC_.xlsx
Data20210609_LRC_.xlsx
我想:
- 使用循环只打开包含 FL 或 FLFR 的那些
- 分隔以FL结尾的和以FLFR结尾的;
这是我的代码,但它不起作用,我不完全理解如何使用 re.findall
import glob
import os
import re
import pandas as pd
# %%
directory = r'C:/ .../Licor/'
appendix = "_.xlsx"
location = directory + appendix
datafinal = pd.DataFrame()
#%%
for filepath in glob.iglob(location):
print(filepath)
head_tail = os.path.split(filepath)
Treatment = re.findall("[_FL][^_]*",head_tail[1])[0]
data = pd.read_excel(filepath)
data['Spectrum']= Treatment
datafinal= pd.concat([datafinal,data])
谢谢!
解决方法
你的方法太复杂了,试试:
import os
for fn in os.listdir("./"):
fn_without_ext = os.path.splitext(fn)[0]
if fn_without_ext.endswith("FLFR_"):
print(fn) # do your FLFR stuff
if fn_without_ext.endswith("FL_"):
print(fn) # do your FL stuff
更多信息:
https://docs.python.org/3/library/os.html#os.listdir
https://docs.python.org/3/library/stdtypes.html?highlight=endswith#str.endswith
https://docs.python.org/3/library/os.path.html#os.path.splitext