'Move files to a network folder

Could you tell me please, how to correctly specify the path to the network folder from the Linux operating system in the code?

The network folder is accessible via SMB

I use the following code to move a certain type of files:

#!/usr/bin/python3

import shutil
import os
from glob import glob

for file in list(glob(os.path.join('//192.168.10.20/NEW/test1', '*.pdf'))):
    shutil.move(file, '//192.168.10.20/NEW/test2')

Process finished with exit code 0

But the files are not moved.

I tried this code on local folders - everything works fine, I think the problem is in the wrong format of the path to the network folder from Linux via SMB, please tell me. Thanks.



Solution 1:[1]

Since you're uploading to an SMB share, you need to use pysmb for instance.

NB. I don't have a SMB share available right now, so this is untested, but should point you in the right direction.

#!/usr/bin/python3

from smb.SMBConnection import SMBConnection

conn = SMBConnection(...)
assert conn.connect(ip, port)

for file in conn.listPath("NEW", path="/test1/", pattern="*.pdf"):
    conn.rename("NEW", "/test1/" + file.filename, "/test2/" + file.filename)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1