给定以下格式(.properties或.ini):
propertyName1=propertyValue1
propertyName2=propertyValue2
...
propertyNameN=propertyValueN
Run Code Online (Sandbox Code Playgroud)
对于Java,有一个Properties类,它提供了解析/与上述格式交互的功能.
python的标准库(2.x)中有类似的东西吗?
如果没有,我还有其他选择吗?
我正在编写的剧本中有以下任务(结果列在<>中的调试语句旁边):
- debug: var=nrpe_installed.stat.exists <true>
- debug: var=force_install <true>
- debug: var=plugins_installed.stat.exists <true>
- name: Run the prep
include: prep.yml
when: (nrpe_installed.stat.exists == false or plugins_installed.stat.exists == true or force_install == true)
tags: ['prep']
- debug: var=nrpe_installed.stat.exists <true>
- debug: var=force_install <true>
- debug: var=force_nrpe_install <false>
- name: Install NRPE
include: install-nrpe.yml
when: (nrpe_installed.stat.exists == false or force_install == true or force_nrpe_install == true)
tags: ['install_nrpe']
vars:
nrpe_url: 'http://url.goes.here'
nrpe_md5: 3921ddc598312983f604541784b35a50
nrpe_version: 2.15
nrpe_artifact: nrpe-{{ nrpe_version }}.tar.gz
nagios_ip: {{ nagios_ip …Run Code Online (Sandbox Code Playgroud) 可能是一个简单的问题,我以前找不到答案......
我正在格式化一个表(在文本中)看起来像这样:
Timestamp: Word Number
Run Code Online (Sandbox Code Playgroud)
在时间戳和Number的开头之间的字符数是20,包括Word中的字符(因此它保持对齐).使用python我做到了这个:
offset = 20 - len(word)
printer = timestamp + ' ' + word
for i in range(0, offset):
printer += ' '
printer += score
Run Code Online (Sandbox Code Playgroud)
哪个有效,但python向我抛出一个错误,我从未使用过(因为它不是).虽然这不是一个大问题,但我只是想知道是否有更好的方法.
编辑:
由于我无法为此添加答案(因为它标记为重复),更换整个事情的更好方法是
printer = timestamp + ' ' + word.ljust(20) + score
Run Code Online (Sandbox Code Playgroud) 我正在编写一本ansible playbook来自动安装一个软件.当我从网站上下载tarball时:
software-package-release.tar.gz
Run Code Online (Sandbox Code Playgroud)
当解压缩时,我留下目录
software-package-v2.15/
Run Code Online (Sandbox Code Playgroud)
ansible有没有办法注册作为unarchive模块的一部分创建的目录?
我尝试过以下播放(我把nrpe-lkdsflkdjf文件放在那里,其中包含一个dir nrpe-2.15)
- name: Extract
unarchive
src:/tmp/nrpe-lkdsflkdjf
dest: /tmp/
copy: no
register: tar_reg
- name: debug tar_reg
debug: var=tar_reg
Run Code Online (Sandbox Code Playgroud)
这是调试的输出:
ok: [IP-here] => {
"tar_reg": {
"changed": true,
"check_results": {
"cmd": "/bin/gtar -C \"/tmp/\" --diff -f \"/tmp/nrpe-lkdsjflkdsjf\"",
"err": "/bin/gtar: nrpe-2.15: Warning: Cannot stat: No such file or directory\n/bin/gtar: nrpe-2.15/SECURITY: Warning: Cannot stat: No such file or directory\n/bin/gtar: nrpe-2.15/README.Solaris: Warning: Cannot stat: No such file or directory\n/bin/gtar: nrpe-2.15/init-script.debian.in: Warning: Cannot stat: No …Run Code Online (Sandbox Code Playgroud) 我有一本字典:
big_dict = {1:"1",
2:"2",
...
1000:"1000"}
Run Code Online (Sandbox Code Playgroud)
(注意:我的字典实际上不是字符串的数字)
我将这个字典传递给一个需要它的函数.我经常使用字典来实现不同的功能.但是,有时候我想发送big_dict一个额外的密钥:项目对,这样我想发送的字典就相当于:
big_dict[1001]="1001"
Run Code Online (Sandbox Code Playgroud)
但我不想实际将值添加到字典中.我可以制作字典的副本并将其添加到那里,但我想避免这会消耗的内存+ CPU周期.
我目前的代码是:
big_dict[1001]="1001"
function_that_uses_dict(big_dict)
del big_dict[1001]
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但它似乎相当笨拙.
如果这是一个我会做的字符串:
function_that_uses_string(myString + 'what I want to add on')
Run Code Online (Sandbox Code Playgroud)
用字典有没有相同的方法呢?
我认为我的问题或多或少是试图从在Linux上运行的django查询SQL Server的重复- 无法打开lib'/ path/to/libtdsodbc.so',但答案完全没有用.
我使用以下东西:
Python3Django 1.9 (通过pip3安装)freetds-dev 0.91-6build1 通过apt-get安装django-pyodbc-azure/ django-pyodbc通过pip3安装尝试连接时,执行python3 manage.py inspectdb以下操作:
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.4/dist-packages/sql_server/pyodbc/base.py", line 302, in get_new_connection
timeout=timeout)
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found (0) (SQLDriverConnect)")
The above exception was the direct cause of the …Run Code Online (Sandbox Code Playgroud) 我想在远程测试机上运行我的ansible playbook,但作为测试方法,我想在每个步骤之间验证我期望完成的工作.
我想在每个任务命令之后或多或少地添加一个"暂停"任务,但是实际上并没有将它放入我的yaml脚本中.ansible有什么样的"调试"模式可以实现吗?
我正在使用ansible 1.5,但我对那些使用较新版本功能的答案持开放态度.
是否可以使用ansible_factsAnsible adhoc命令中通常包含的内容?
例如,我/tmp/myFile所有服务器上都有一个文件,我想这样做:
ansible all -i [inventory file] -m fetch -a "src=/tmp/myFile dest=myFile-[insert ansible_hostname here]"
Run Code Online (Sandbox Code Playgroud)
无需为此编写一本完整的剧本。
从这个答案我有一个扁平的列表.
现在我想删除重复项并对列表进行排序.目前我有以下内容:
x = itertools.chain.from_iterable(results[env].values()) #From the linked answer
y = sorted(list(set(x)), key=lambda s:s.lower())
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?在我的情况下,x大小约为32,000,y最终大小约为1,100.我有什么工作,但我想看看有没有更好的(更快,更可读等)
我正在使用带有 MSSQL Server 后端的 django。我inspectdb在一个数据库上运行,它使我所有的字段名称都小写,以前它们是驼峰式的。
我想保留camelCase(即使它不与Python 兼容)。我在inspectdb.py中找到了它的位置:
"""
Modify the column name to make it Python-compatible as a field name
"""
field_params = {}
field_notes = []
new_name = col_name.lower()
if new_name != col_name:
field_notes.append('Field name made lowercase.')
Run Code Online (Sandbox Code Playgroud)
删除 col_name.lower() 是否安全,或者是否有什么会导致驼峰命名导致问题?
我在java应用程序中有以下代码:
UserMessage um = new UserMessage("a string",
false,
"another String",
"one last string");
Run Code Online (Sandbox Code Playgroud)
Eclipse告诉我这行代码有错误:
The constructor UserMessage(String, Object[]) is ambiguous
Run Code Online (Sandbox Code Playgroud)
UserMessage的所有构造函数的签名是:
1. public UserMessage(String key)
2. public UserMessage(String key, boolean escapeHTML, Object... args)
3. public UserMessage(String key, Object... args)
4. public UserMessage(ErrorCode code)
5. public UserMessage(ErrorCode code, Object... args)
Run Code Online (Sandbox Code Playgroud)
对我而言,我正在调用的构造函数应该指向上面的#2.这个错误似乎告诉我它认为它可能指向第三个构造函数.
为什么这个电话有歧义?我唯一能想到的是false,由于某种原因,是否会被投射到一个Boolean对象,但显然这不是我的代码所做的 - 所以这必须是java编译器自己做的事情.
我正在查看一些我正在使用的代码,其中有一点特别让我感到震惊:
在文件中有一个块:
public void prepare(){
if (this.GenericObjectID != null)
doStuff();
else{
this.GenericObjet = new GenericObject();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我浏览时,GenericObject.java根本就没有构造函数.代码运行,但我没有写它,所以我不是肯定的(还是!).所以我的问题是:这怎么可能?什么是java编译器在看到此调用时所做的事情,但是文件中没有描述该对象的构造函数?
python ×5
ansible ×4
django ×2
java ×2
sql-server ×2
constructor ×1
dictionary ×1
eclipse ×1
java-6 ×1
polymorphism ×1
properties ×1
python-2.7 ×1
python-3.x ×1
tar ×1