小编mic*_*-ko的帖子

Python Paramiko 目录遍历 SFTP

如何做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)

python ssh sftp paramiko

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

Pandas .agg() 转换为列表但跳过 nan

如何合并/减少 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'] 等等

aggregate nan dataframe python-3.x pandas

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

Python - 找到 2 个列表的补充

我正在寻找一种方法,可以让我在比较 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, …

python compare numpy list complement

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

标签 统计

python ×2

aggregate ×1

compare ×1

complement ×1

dataframe ×1

list ×1

nan ×1

numpy ×1

pandas ×1

paramiko ×1

python-3.x ×1

sftp ×1

ssh ×1