Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2017 18:56:27

_nemo_
Зарегистрирован: 2017-01-02
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

'''
Нет, я имел в виду прерывать функцию поиска в коде после первого найденного результата.
'''
так break же там стоит, именно эти функции и выполняет

Ну вобщем- то да, задачка получилась интересная, хоть и небольшая

Офлайн

#2 Янв. 4, 2017 19:35:52

varc
Зарегистрирован: 2017-01-04
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

На будущее хочу спросить, что и куда надо добавить в мой скрипт, чтобы он искал по всем локальным дискам? А то мало ли куда на удаленном ПК могли установить прогу и ее конфиги.

Офлайн

#3 Янв. 4, 2017 23:37:27

_nemo_
Зарегистрирован: 2017-01-02
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

Нужно установить дополнительную библиотеку PyWin32.
Другого способа не знаю.

 import win32api as w
li = w.GetLogicalDriveStrings()
print(li)

Офлайн

#4 Янв. 5, 2017 08:59:33

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

varc
А то мало ли куда на удаленном ПК могли установить прогу и ее конфиги.
Способ просто шарить по дискам представляется некорректным. Если программу именно установили а не просто бросили на диск значит она запускается либо из меню либо просто из консоли. И искать ее надо тогда не везде а по путям указанным в переменной окружения path или в системных меню. В этом случае диски переюирать не потребуется.

_nemo_
Другого способа не знаю.
Даже большее количество возможностей получите используя обращения к системным динамическим библиотекам при помощи ctypes например (https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364975(v=vs.85).aspx). PyWin32 нужна в основном для тех приложений которые предоставляют только com интерфейс. Ну типа ворда.

p.s.
Способ для ленивых В нормальных ОС ( :) ) для решения вашей задачи есть системные команды например which,locate и т.п. ставите любой эмулятор unix на вашу машину и решаете вашу задачу в одну строчку. Кстати как вы хотите применять ваше чудо? Будете таскать портативный питон на флешке?



Отредактировано doza_and (Янв. 5, 2017 09:10:10)

Офлайн

#5 Янв. 5, 2017 08:59:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

А может тупо перебрать весь алфавит?



Офлайн

#6 Янв. 5, 2017 13:19:43

_nemo_
Зарегистрирован: 2017-01-02
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

'''
Будете таскать портативный питон на флешке?
'''
На всех моих машинах питон установлен, зачем таскать на флешке…

Офлайн

#7 Янв. 5, 2017 13:21:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

_nemo_

[quote][/quote]



Офлайн

#8 Янв. 5, 2017 14:43:19

_nemo_
Зарегистрирован: 2017-01-02
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

FishHook
А может тупо перебрать весь алфавит?

Вот:

 import os
alphabet = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
disk_letter = []
for letter in alphabet:
    try:
        tc = os.listdir(letter + ':\\')
        disk_letter.append(letter)
    except:
        pass
print(disk_letter)

Офлайн

#9 Янв. 5, 2017 15:56:19

_nemo_
Зарегистрирован: 2017-01-02
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Поиск файла с корня диска С

doza_and
Способ просто шарить по дискам представляется некорректным. Если программу именно установили а не просто бросили на диск значит она запускается либо из меню либо просто из консоли. И искать ее надо тогда не везде а по путям указанным в переменной окружения path или в системных меню. В этом случае диски переюирать не потребуется.

На самом деле, возможностей у данного подхода гораздо больше, например вы случайно затерли важный файл, но в программе, которой вы пользовались стоял автосэйв, соответственно где- то на машине есть копия этого файла с измененным именем и расширением, но созданная в определенный, известный промежуток времени. И совсем не факт, что автосэйв сохранил копии в тэмп директории. Соответственно вот такое использование, совсем не касающееся к ущемлению чьих- то прав.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version