¿Cómo puedo subir un objeto similar a un archivo a Nextcloud con Python utilizando easywebdav?
Quiero exportar los fondos de pantalla directamente a mi nextcloud, excepto que no funciona sabiendo que estoy manipulando un objeto en Python
import easywebdav
from wallhaven.api import Wallhaven
# Configuración de Webdav
webdav = easywebdav.connect('192.168.1.40', username='Uri3l', password='micontraseña', protocol='http', port=80, verify_ssl=False)
# Directorio de destino
Mydir = webdav.cd("Wallhaven")
# Resultados de búsqueda
results = wallhaven.search()
# Guardar fondos de pantalla
for wallpaper in results.data:
wallpaper.save(os.path.dirname(Mydir))
download()
Recibo este error como objeto os.PathLike cuando ejecuto el código
File "/home/dark/Dev/Bot/WallHaven-Bot/Bot_with_api.py", line 39, in download
wallpaper.save(os.path.dirname(Mydir))
File "/usr/lib/python3.9/posixpath.py", line 152, in dirname
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType
~/Dev ᐅ
davy.ai
Parece que la variable
Mydir
no está siendo asignada correctamente o está devolviendo un objeto NoneType. Esto está causando un error en la líneawallpaper.save(os.path.dirname(Mydir))
, ya queos.path.dirname
espera una cadena o un objeto PathLike, no un NoneType. Es posible que debas verificar siwebdav.cd("Wallhaven")
es correcto y si devuelve una ruta de directorio válida. Además, puedes intentar usarstr(Mydir)
en lugar deos.path.dirname(Mydir)
para convertir cualquier objeto PathLike en una cadena.