Foros Python

Versión completa: Abrir ventana de propiedades de un archivo en Windows
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Hola,
Ya hay alguna manera de obtener las propiedades de un archivo?
Independientemente de la extension del archivo.....en mi caso puede ser un archivo .dft o .par....
Saludos
Hola.

¿Cuáles serían esas propiedades? Algunas como tamaño o última modificación las podés obtener usando os.stat():

Código:
>>> import os
>>> os.stat("README.md")
os.stat_result(st_mode=33206, st_ino=48695170970997621, st_dev=1988384275, st_nlink=1, st_uid=0, st_gid=0, st_size=1717, st_atime=1693786149, st_mtime=1693786149, st_ctime=1693786149)

Otro ejemplo: Cómo obtener el tamaño de un archivo

Saludos
Hola,
Me gustaria abrir directamente con un ejecutable los datos del archivo...
Adjunto captura.....[attachment=182]
Para eso hay que usar la API de Windows. Acá tenés un ejemplo:

Código:
import time
import ctypes
import ctypes.wintypes

SEE_MASK_NOCLOSEPROCESS = 0x00000040
SEE_MASK_INVOKEIDLIST = 0x0000000C

class SHELLEXECUTEINFO(ctypes.Structure):
    _fields_ = (
        ("cbSize",ctypes.wintypes.DWORD),
        ("fMask",ctypes.c_ulong),
        ("hwnd",ctypes.wintypes.HANDLE),
        ("lpVerb",ctypes.c_char_p),
        ("lpFile",ctypes.c_char_p),
        ("lpParameters",ctypes.c_char_p),
        ("lpDirectory",ctypes.c_char_p),
        ("nShow",ctypes.c_int),
        ("hInstApp",ctypes.wintypes.HINSTANCE),
        ("lpIDList",ctypes.c_void_p),
        ("lpClass",ctypes.c_char_p),
        ("hKeyClass",ctypes.wintypes.HKEY),
        ("dwHotKey",ctypes.wintypes.DWORD),
        ("hIconOrMonitor",ctypes.wintypes.HANDLE),
        ("hProcess",ctypes.wintypes.HANDLE),
    )

ShellExecuteEx = ctypes.windll.shell32.ShellExecuteEx
ShellExecuteEx.restype = ctypes.wintypes.BOOL

sei = SHELLEXECUTEINFO()
sei.cbSize = ctypes.sizeof(sei)
sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_INVOKEIDLIST
sei.lpVerb = "properties"
sei.lpFile = "C:\\Desktop\\test.txt"
sei.nShow = 1
ShellExecuteEx(ctypes.byref(sei))
time.sleep(5)
Me da el siguiente error y no se de que es, a ver si me podeis ayudar, adjunto el pantallazo del error.
Probaría poniendo:

Código:
sei.lpVerb = b"properties"
(27-12-2023, 11:16 PM)Francisco escribió: [ -> ]Probaría poniendo:

Código:
sei.lpVerb = b"properties"
Hola,
Con esto ya funciona, me abre la ventana de propiedades. Muchas gracias.
Y sabes si hay alguna posibilidad, para extraer un valor de la pestaña "personalizado", en mi caso, me interesaria extraer el valor de CodigoP que en este caso es 7440522, puede que en algunos casos este vacio. Adjunto un pantallazo....
Como poder se puede, usando la API de Windows también, pero ya es más complejo. Esas propiedades deben estar dentro del archivo, ¿por qué no mejor usar un módulo para leer los datos de un archivo dft?
(28-12-2023, 02:42 PM)Conoces algun moduloFrancisco escribió: [ -> ]Como poder se puede, usando la API de Windows también, pero ya es más complejo. Esas propiedades deben estar dentro del archivo, ¿por qué no mejor usar un módulo para leer los datos de un archivo dft?

Conoces algun modulo? para que pueda indagar un poco sobre el tema.....
No conozco el formato, ¿es de algún programa en particular?
Páginas: 1 2