我正在尝试处理目录中的一些文件而不知道他们的名字,并逐个处理.所以我习惯os.listdir(path)列出文件.
所以我必须在每次调用函数时列出文件.问题是当有很多文件(比如2000)时,列出每个文件需要花费很多时间,我只想要第一个文件.
是否有任何解决方案获得名字而不列出每个文件?
谢谢 :)
我正试图通过我的Fedora客户端在我的Fedora 23服务器上通过Ansible建立我的firewalld(是的,我喜欢fedora:D).
但是,每次我尝试使用包括firewalld(示例- firewalld: service=https permanent=true state=enabled)在内的某些命令执行playbook时,playbook执行失败并显示以下消息:
failed: [w.x.y.z] => {"failed": true, "parsed": false}
failed=True msg='firewalld required for this module'
Run Code Online (Sandbox Code Playgroud)
我在远程服务器上运行并运行:
# firewall-cmd --version
0.3.14.2
Run Code Online (Sandbox Code Playgroud)
在我的电脑上:
$ ansible --version
ansible 1.9.4
configured module search path = None
Run Code Online (Sandbox Code Playgroud)
有谁知道它可能来自哪里?谢谢 !
-
编辑:在Ansible源代码的这一行,似乎没有导入防火墙库(并执行显示没有防火墙的错误).但是,这个库存在于Python3中,而不是Ansible使用的Python2.
$ locate firewall
[...]
/usr/lib/python3.4/site-packages/firewall
[...]
Run Code Online (Sandbox Code Playgroud)
我会继续搜索,但如果有人有想法......
我有一个问题,我找到了一个解决方案,但我觉得这是错误的方法.也许,有一种更"规范"的方式来做到这一点.
问题
我有两个数据框,我想合并,没有额外的列,没有删除现有的信息.示例:
现有数据帧(df)
A A2 B
0 1 4 0
1 2 5 1
Run Code Online (Sandbox Code Playgroud)
要合并的数据帧(df2)
A A2 B
0 1 4 2
1 3 5 2
Run Code Online (Sandbox Code Playgroud)
我想更新df与df2是否列"A"和"A2"相对应.结果将是(:
A A2 B
0 1 4 2.0 <= Update value ONLY
1 2 5 1.0
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案,但我认为这不是一个非常好的解决方案.
import pandas as pd
df = pd.DataFrame([[1,4,0],[2,5,1]],columns=['A','A2','B'])
df2 = pd.DataFrame([[1,4,2],[3,5,2]],columns=['A','A2','B'])
df = df.merge(df2,on=['A', 'A2'],how='left')
df['B_y'].fillna(0, inplace=True)
df['B'] = df['B_x']+df['B_y']
df = df.drop(['B_x','B_y'], axis=1)
print(df)
Run Code Online (Sandbox Code Playgroud)
有没有人有更好的方法呢?谢谢 !