如何做os.walk()
,而是通过SSH在另一台计算机上?问题是它os.walk()
在本地机器上执行,我想通过 ssh 连接到另一台名为“sunbeam”的计算机,遍历一个目录并为其中的每个文件生成 MD5 哈希值。
到目前为止我写的看起来像这样(下面的代码),但它不起作用。任何帮助将不胜感激。
try:
hash_array = []
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('sunbeam', port=22, username='xxxx', password='filmlight')
spinner.start()
for root, dirs, files in os.walk(_path):
for file in files:
file_path = os.path.join(os.path.abspath(root), file)
# generate hash code for file
hash_array.append(genMD5hash(file_path))
file_nb += 1
spinner.stop()
spinner.ok('Finished.')
return hash_array
except Exception as e:
print(e)
return None
finally:
ssh.close()
Run Code Online (Sandbox Code Playgroud) 如何合并/减少 DataFrame,以便它按自定义列“id”合并行,并将值放入列表中(如果它们不是 Nan)。到目前为止,我想出了这个,但它并没有删除 Nans:
x: pd.DataFrame = df_chunk.groupby('id', dropna=True).agg(lambda x: list(x))
for row in x.itertuples():
print(row)
Run Code Online (Sandbox Code Playgroud)
所以结果是:
Pandas(Index=1, surname=['Bruce', nan, nan], given_name=['Erin', nan, nan], date_of_birth=['11/03/1961', '11/04/1961', '11/06/1961'], address=['10 Kestrel Wood Way, York', '4 Ward Avenue, Cowes', '11 Woodhill Court, Woodside Road, Amersham'], postcode=['YO31 9EJ', 'BD10 0LT', 'WA14 1LH'], mobile=['+64 21 421 2300', '+64 29 975 1551', '+64 22 5491 7112'])
Run Code Online (Sandbox Code Playgroud)
期望的结果是 surname=['Bruce']、given_name=['Erin'] 等等
我正在寻找一种方法,可以让我在比较 2 个列表时检查缺少哪些元素。很像在这个线程中,但我想用 NumPy Python 编写它。
import numpy as np
numbers = np.array([1,2,3,4,5,6,7,8,9])
A = np.array([2,5,6,9])
def listComplementElements(list1, list2):
storeResults = []
for i in list1:
for j in list2:
if i != j:
#write to storeResults if 2 numbers are different
storeResults.append(i)
else:
#if numebrs are equal break out of the loop
break
return storeResults
result = listComplementElements(numbers, A)
print(result) #expected result [1,3,4,7,8]
Run Code Online (Sandbox Code Playgroud)
目前输出如下所示: [1, 1, 1, 1, 3, 3, 3, 3, 4, 4, 4, 4, 5, 6, …