Como modificar o arquivo XML sobre SMB?

votos
0

Eu preciso modificar um arquivo xml em uma rede compartilhada (Linux para windows). Meu plano é para se conectar à rede compartilhada usando SMB (pysmb), em seguida, modificar o arquivo usando xml.etree.ElementTree. Até agora eu tenho o seguinte código:

try:
    conn = SMBConnection(user, password, host_name, host, domain=domain_name, use_ntlm_v2=True)
    conn.connect(ip_address, 139)

    if conn:
        shares = conn.listShares()

        for share in shares:
            if not share.isSpecial and share.name not in ['NETLOGON', 'SYSVOL']:
                if str(share.name) == 'folder1':
                    sharedDirs = conn.listPath(share.name, 'folder2')
                    print('this is sharedDirs ', str(sharedDirs));
                    for s in sharedDirs:
                        print('this is a sharedDIR: ', s.filename)
                        if(str(s.filename) == 'file.xml'):
                            et = xml.etree.ElementTree.parse(str(s))
                            print(et)
    else:
        print failed to connect server
    conn.close()

except Exception as e:
    print(*** Caught exception: %s: %s % (e.__class__, e))
    traceback.print_exc()
    return e

Eu sou capaz de se conectar com sucesso ao servidor e s.filename corresponda ao nome do arquivo xml que eu preciso modificar. No entanto, eu recebo um não existe tal arquivo ou diretório existe exceção. Eu também tentei colocar no filepath direta, como

xml.etree.ElementTree.parse(//network_name/folder1/folder2/file.xml) 

e obter o mesmo erro

Estou lidando com isso da maneira certa? Seria melhor para recuperar o arquivo, modificá-lo, em seguida, substituí-lo?

Publicado 10/10/2019 em 00:44
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more