gpt4 book ai didi

python - 从 Python 或 R 中的文件名列表中提取子字符串

转载 作者:行者123 更新时间:2023-12-01 04:56:13 25 4
gpt4 key购买 nike

我的问题与以下内容非常相似:How to get a Substring from list of file names 。我是 Python 新手,更喜欢 Python(或 R)的类似解决方案。我想查看一个目录并从每个适用的文件名中提取特定的子字符串,并将其输出为向量(首选)、列表或数组。例如,假设我的目录具有以下文件名:

data_ABC_48P.txt
data_DEF_48P.txt
data_GHI_48P.txt
other_96.txt
another_98.txt

我想引用该目录并将以下内容提取为字符向量(用于 R 中)或列表:

"ABC", "DEF", "GHI"

我尝试了以下方法:

from os import listdir
from os.path import isfile, join
files = [ f for f in listdir(path) if isfile(join(path,f)) ]
import re
m = re.search('data_(.+?)_48P', files)

但我收到以下错误:

TypeError: expected string or buffer

files 属于 type list

In [10]: type(files)
Out[10]: list

尽管我最终希望这个字符向量作为 R 代码的输入,但我们正在尝试将所有“脚本”转换为 Python 并仅使用 R 进行数据分析,因此 Python 解决方案会很棒。我也在使用 Ubuntu,因此 cmd 行或 bash 脚本解决方案也可以工作。提前致谢!

最佳答案

使用列表理解,例如,

[re.search(r'data_(.+?)_48P', i).group(1) for i in files if re.search(r'data_.+?_48P', i)]

您需要迭代列表内容才能获取所需的子字符串。

关于python - 从 Python 或 R 中的文件名列表中提取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com