python - 使用正则表达式提取文件路径并将其保存在python中

标签 python regex pandas

我有一个文本文件,其中包含很多文件路径file.txt:

C:\data\AS\WO\AS_WOP_1PPPPPP20070506.bin
C:\data\AS\WO\AS_WOP_1PPPPPP20070606.bin
C:\data\AS\WO\AS_WOP_1PPPPPP20070708.bin
C:\data\AS\WO\AS_WOP_1PPPPPP20070808.bin
...

我用 Regex 从路径中提取日期所做的工作:

import re

textfile = open('file.txt', 'r')
filetext = textfile.read()
textfile.close()

data = []

for line in filetext:
    matches = re.search("AS_[A-Z]{3}_(.{7})([0-9]{4})([0-9]{2})([0-9]{2})", line)
    data.append(line)

它没有给我想要的东西。

我的输出应该是这样的:

year    month
2007     05
2007     06
2007     07
2007     08

然后将其保存为列表列表:

[['2007', '5'], ['2007', '6'], ['2007', '7'], ['2007', '8']]

将其保存为Pandas 系列

有什么方法可以用 regex 得到我想要的吗!?

最佳答案

您可以将您的正则表达式简化为:

/(....)(..)..\.bin$/

第 1 组将包含年份,而第 2 组将包含月份。我假设格式适用于整个文件。

现在,. 代表任何 字符,\. 代表“点”或文字.$ 表示在字符串的末尾。 因此,我在行尾匹配 .bin 并省略日,只对年和月进行分组。

关于python - 使用正则表达式提取文件路径并将其保存在python中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503806/

相关文章:

python - 在python中将递归函数转换为尾递归函数

javascript - 如何用两个正则表达式拆分字符串

javascript - 密码正则表达式来阻止方括号和空格?

java - 在 Java 正则表达式字符串中查找括号

python - 在 Seaborn 情节中叠加不同年份的 Pandas 时间序列

python - 如何解决 python axelrod Lookerup 策略中的关键错误

python - 生成总和为 1 的随机变量数组(正数和负数)

c++ - 用 ctypes 包装简单的 c++ 示例;分段故障

python - 查找每个 pandas 数据帧行中前 n 个最高值(非零)列的名称

python - 将曲线拟合到散点图的边界