字符串上的Python正则表达式并存储在Variab中

2024-10-01 00:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python代码,它为多个csv文件绘制图表。我有一个文件列表,我使用for循环遍历列表和绘图。执行完全相同的代码来解析数据并绘制它,这都在for循环中。以下是我的代码结构:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

files = ['/myhomepath/project1/red/red.csv', '/myhomepath/project1/blue/blue.csv', '/myhomepath/project2/red/red.csv', '/myhomepath/project2/blue/blue.csv'] 

for file in files
    ... #code for parsing and plotting
    ...
    ...
    plt.title('project1_blue')
    plt.savefig("C:/Users/me/Documents/project1_blue.png")

所以我的问题很明显。不同文件的每个图表都将具有相同的标题,最后,由于覆盖,列表中最后一个文件只有一个图像文件。我想做的是解析当前使用的路径file,提取最后两个目录名并在它们之间加下划线,将其存储到一个变量中,并将此变量用于标题和图像名。我正在考虑一种正则表达式匹配的形式来提取路径“projectX”和“red/blue”的最后两个目录,但是我不太确定如何做。我对python(第一个python脚本)相当陌生


Tags: 文件csv代码import列表foras图表
1条回答
网友
1楼 · 发布于 2024-10-01 00:29:11

可以使用re.split使用/作为分隔符。使用lindex-1、-2、。。。就像下面一样

import re

files = ['/myhomepath/project1/red/red.csv', '/myhomepath/project1/blue/blue.csv', '/myhomepath/project2/red/red.csv', '/myhomepath/project2/blue/blue.csv'] 

for file in files:

    sp = re.split('/', file)

    title = sp[-3]+'_'+sp[-2]
    name = "C:/Users/me/Documents/" + sp[-3] +'_' + sp[-2] + '.png'

    print(title, name)

# project1_red C:/Users/me/Documents/project1_red.png
# project1_blue C:/Users/me/Documents/project1_blue.png
# project2_red C:/Users/me/Documents/project2_red.png
# project2_blue C:/Users/me/Documents/project2_blue.png

相关问题 更多 >