Как преобразовать значение моего словаря Python в имена переменных

Вот мой пример кода (скопирован из Как я могу создать дерево каталогов в C ++ / Linux? ). Возможно, он не соответствует всем требованиям с первого поста, но довольно хорошо, и он работает как для Windows, так и для Linux:

#include 
#include 
#include  // stat
#include     // errno, ENOENT, EEXIST
#if defined(_WIN32)
#include    // _mkdir
#endif

bool isDirExist(const std::string& path)
{
#if defined(_WIN32)
    struct _stat info;
    if (_stat(path.c_str(), &info) != 0)
    {
        return false;
    }
    return (info.st_mode & _S_IFDIR) != 0;
#else 
    struct stat info;
    if (stat(path.c_str(), &info) != 0)
    {
        return false;
    }
    return (info.st_mode & S_IFDIR) != 0;
#endif
}

bool makePath(const std::string& path)
{
#if defined(_WIN32)
    int ret = _mkdir(path.c_str());
#else
    mode_t mode = 0755;
    int ret = mkdir(path.c_str(), mode);
#endif
    if (ret == 0)
        return true;

    switch (errno)
    {
    case ENOENT:
        // parent didn't exist, try to create it
        {
            int pos = path.find_last_of('/');
            if (pos == std::string::npos)
#if defined(_WIN32)
                pos = path.find_last_of('\\');
            if (pos == std::string::npos)
#endif
                return false;
            if (!makePath( path.substr(0, pos) ))
                return false;
        }
        // now, try to create again
#if defined(_WIN32)
        return 0 == _mkdir(path.c_str());
#else 
        return 0 == mkdir(path.c_str(), mode);
#endif

    case EEXIST:
        // done!
        return isDirExist(path);

    default:
        return false;
    }
}

int main(int argc, char* ARGV[])
{
    for (int i=1; i

Использование:

d:\Work\c++\make_path> makePath 1/2 folderA/folderB/folderC
creating 1/2 ... OK
creating folderA/folderB/folderC ... OK

-1
задан Kamal Panigrahi 1 March 2019 в 17:55
поделиться

1 ответ

Я не уверен, что это правильный способ решения вашей проблемы, но вы можете добавить свои значения непосредственно в ваше локальное пространство имен

>>> locals()['first_name'] = "James"
>>> first_name
James

locals() даст вам локальное пространство имен. [113 ]

0
ответ дан stefan 1 March 2019 в 17:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: