Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Abrir ventana de propiedades de un archivo en Windows
#1
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
Responder
#2
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
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Hola,
Me gustaria abrir directamente con un ejecutable los datos del archivo...
Adjunto captura.....    
Responder
#4
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)
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#5
Me da el siguiente error y no se de que es, a ver si me podeis ayudar, adjunto el pantallazo del error.


Archivos adjuntos Miniatura(s)
   
Responder
#6
Probaría poniendo:

Código:
sei.lpVerb = b"properties"
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#7
(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....


Archivos adjuntos Miniatura(s)
   
Responder
#8
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?
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#9
(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.....
Responder
#10
No conozco el formato, ¿es de algún programa en particular?
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 4 invitado(s)