小编Pla*_*oth的帖子

如何完全删除root密码

我正在运行slitaz发行版,并希望完全删除root密码.我试过给passwd命令一个空白密码,但这似乎没有办法.它给了我一个错误密码太短的问题,当我输入密码时,它仍然要求我输入密码.密码只是在点击"Enter"键.

更新:
也许这与slitaz使用dropbear for ssh的事实有关?因为即使root用户密码为空/etc/shadow,它仍会提示输入密码.

linux login passwd user-accounts

46
推荐指数
1
解决办法
11万
查看次数

如何将任意选项字符串解析为python字典

我试图找到最Pythonic方式来获取包含命令行选项的字符串:

"-t 500 -x -c 3 -d"
Run Code Online (Sandbox Code Playgroud)

把它变成字典

{"-t":"500", "-x":True, "-c":"3", "-d": True}
Run Code Online (Sandbox Code Playgroud)

更新:字符串也应该能够包含--long选项,以及中间带有破折号的单词:

"-t 500 -x -c 3 -d --long-option 456 -testing weird-behaviour"
Run Code Online (Sandbox Code Playgroud)

在建议我查看OptionParse模块之前,请记住我不知道有效选项是什么或类似的东西,我只是试图将字符串放入字典中以允许基于不同的选项字典来修改它.

我正在考虑的方法是使用split()将项目放入列表,然后遍历列表并查找以短划线" - "开头的项目并将其用作键,然后以某种方式进入下一个项目价值清单.我遇到的问题是没有值的选项.我想过做的事情:

for i in range(0, len(opt_list)):
        if opt_list[i][0] == "-":
            if len(opt_list) > i+1 and not opt_list[i+1][0] == "-":
                opt_dict[opt_list[i]] = opt_list[i+1] 
            else:
                opt_dict[opt_list[i]] = True
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我似乎用C编程而不是Python编程......

python string dictionary

9
推荐指数
1
解决办法
1509
查看次数

如何使用Python中的json.dumps()将整数打印为十六进制字符串

目前我使用以下代码来打印大型数据结构

print(json.dumps(data, indent=4))
Run Code Online (Sandbox Code Playgroud)

我想看到以十六进制而不是十进制打印的所有整数.那可能吗?似乎没有办法覆盖现有的整数编码器.您只能为尚未由JSONEncoder类处理的类型提供默认值,但无法覆盖它对整数进行编码的方式.

我想我可以使用sys.displayhook覆盖默认的整数打印行为,如果我在命令行中运行但我不是.

仅供参考,数据结构是一个混合包,包括词典,列表,字符串,整数等.所以这就是我使用json.dumps()的原因.我能想到的另一种方法就是自己解析它然后我会重写json模块.

更新: 所以我最终使用序列化函数实现它,只打印原始数据结构的副本,所有整数类型都转换为十六进制字符串:

def odprint(self, hexify=False):
    """pretty print the ordered dictionary"""
    def hexify_list(data):
        _data = []
        for i,v in enumerate(data):
            if isinstance(v, (int,long)):
                _data.insert(i,hex(v))
            elif isinstance(v,list):
                _data.insert(i, hexify_list(v))
            else:
                _data.insert(i, val)
        return _data

    def hexify_dict(data):
        _data = odict()
        for k,v in data.items():
            if isinstance(v, (dict,odict)):
                _data[k] = hexify_dict(v)
            elif isinstance(v, (int, long)):
                _data[k] = hex(v)
            elif isinstance(v,list):
                _data[k] = hexify_list(v)
            else:
                _data[k] = v
        return _data

    if hexify:
        print(json.dumps(hexify_dict(self), indent=4))
    else: …
Run Code Online (Sandbox Code Playgroud)

python hex json integer

6
推荐指数
1
解决办法
5622
查看次数

需要了解Git/Gerrit命令(获取和推送)

我正在关注我们IT部门的一个例子,我想了解这个命令究竟在做什么:

git fetch origin +refs/changes/*:refs/remotes/origin/changes/*
Run Code Online (Sandbox Code Playgroud)

为了给出一些参考框架,这是持续集成(CI)工具的一部分,这是检查要测试的代码的步骤的一部分.通过向Gerrit推送CI来触发CI构建:

git push origin HEAD:refs/for/master
Run Code Online (Sandbox Code Playgroud)

我的第二个问题是,如果我想将更改推送到开发分支,我可以使用:

git push origin HEAD:refs/for/development
Run Code Online (Sandbox Code Playgroud)

git gerrit

5
推荐指数
1
解决办法
1942
查看次数

标签 统计

python ×2

dictionary ×1

gerrit ×1

git ×1

hex ×1

integer ×1

json ×1

linux ×1

login ×1

passwd ×1

string ×1

user-accounts ×1