Python Parse通过String来创建变量

时间:2018-05-21 13:43:10

标签: python string

我有一个读入数据文件的变量

dfPort = pd.read_csv("E:...\Portfolios\ConsDisc_20160701_Q.csv")

我希望创建三个变量:portName,inceptionDate和读取上面“E:...”字符串的频率,并使用下划线作为指示符取出字符串的所需部分下一个变量。解析字符串后的示例:

portName = "ConsDisc"
inceptionDate: "2016-07-01"
frequency: "Q"

任何提示都将不胜感激!

3 个答案:

答案 0 :(得分:2)

您可以使用os.path.basenameos.path.splitextstr.split

import os

filename = r'E:...\Portfolios\ConsDisc_20160701_Q.csv'
parts = os.path.splitext(os.path.basename(filename.replace('\\', os.sep)))[0].split('_')
print(parts)

输出['ConsDisc', '20160701', 'Q']。然后,您可以根据需要操作此列表,例如将其提取到port_name, inception_date, frequency = parts等变量中。

.replace('\\', os.sep)用于将Windows样式的反斜杠分隔路径“规范化”为运行代码的系统约定(即除了Windows之外的任何正斜杠:))

答案 1 :(得分:1)

import os

def parse_filename(path):
    filename = os.path.basename(path)
    filename_no_ext =  os.path.splitext(filename)[0]
    return filename_no_ext.split("_")

path = r"Portfolios\ConsDisc_20160701_Q.csv"
portName, inceptionDate, frequency = parse_filename(path)

答案 2 :(得分:0)

如果您希望将它们存储到字典中并使用它们,那么替代解决方案如何呢?

    var req = https.request(options, function(res) {
    res.setEncoding(ENCODING_UTF8);
    res.on('data', function(result) {

    console.log("Headers: ", res.headers);

    // Your code here.

    });

    res.on('end', () => {
    // Do something here.
    });
});