๐ Python wrapper for rclone.
- ๐ Python>=3.6
pip install rclone
from rclone.rclone import Rclone
rc = Rclone()
pathname = 'gdrive:/remote/path' # you can also use a local path
rc.copy('foo.txt', 'remote:/path/to/dst')
# 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 0.16/0.16 [00:00<00:00, 1.13MB/s]
rc.move('bar.bin', 'remote:/path/to/dst')
# 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 0.16/0.16 [00:00<00:00, 1.34MB/s]
rc.unit = 'B'
rc.copy('foo.txt', 'remote:/path/to/dst')
# 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโ| 159414.0/159414.0 [00:00<00:00, 1003822.00B/s]
rclone.ls('remote:/path/to/dir')
# ['foo.bin', 'bar.txt', 'foo/']
rclone.lsjson('remote:/path/to/dir')
# [
# {
# 'Path': 'bar.txt',
# 'Name': 'bar.txt',
# 'Size': 0,
# 'MimeType': 'text/plain; charset=utf-8',
# 'ModTime': '2022-03-22T13:07:53.557168464-04:00',
# 'IsDir': False
# }
# ]
rclone.ls('remote:/path/to/dir', '-R') # you can supply additional flags to any command as positional argments
# ['foo.bin', 'bar.txt', 'foo/', 'foo/foo1.txt', 'foo/foo2', 'foo/bar/foobar.txt']
rclone.size('remote:/path/to/dir')
# {'total_objects': 5, 'total_size': 170397}
You can also use whatever subcommands/flags with execute()
:
#
rclone.execute('ls "remote:/path/to/dir" --exclude *.txt')
# 27 foo.bin
# 159414 foo.csv.zip
# 4808 rclone.py