Как я делаю захват файла Windows больше как захват файла UNIX?

Вам нужно создать новый экземпляр класса: cal1 = tradingCal(). Это работает для меня.

from pandas.tseries.holiday import get_calendar, HolidayCalendarFactory, GoodFriday
from datetime import datetime

cal = get_calendar('USFederalHolidayCalendar')  # Create calendar instance
cal.rules.pop(7)                                # Remove Veteran's Day rule
cal.rules.pop(6)                                # Remove Columbus Day rule
tradingCal = HolidayCalendarFactory('TradingCalendar', cal, GoodFriday)
print tradingCal.rules

#new instance of class
cal1 = tradingCal()

print cal1.holidays(datetime(2014, 12, 31), datetime(2016, 12, 31))

#DatetimeIndex(['2015-01-01', '2015-01-19', '2015-02-16', '2015-04-03',
#               '2015-05-25', '2015-07-03', '2015-09-07', '2015-11-26',
#               '2015-12-25', '2016-01-01', '2016-01-18', '2016-02-15',
#              '2016-03-25', '2016-05-30', '2016-07-04', '2016-09-05',
#               '2016-11-24', '2016-12-26'],
#              dtype='datetime64[ns]', freq=None, tz=None)
19
задан Salim Fadhley 13 February 2009 в 16:06
поделиться

4 ответа

Согласно MSDN можно указать к CreateFile () 3-й параметр (dwSharedMode) совместно использованный флаг режима FILE_SHARE_DELETE который:

Включает последующие операции открытия на файле, или устройство для запроса удаляют доступ.

Иначе, другие процессы не могут открыть файл или устройство, если они запрашивают, удаляют доступ.

, Если этот флаг не указан, но файл или устройство были открыты для, удаляют доступ, функциональные сбои.

Примечание Удаляет доступ, позволяет, и удалите и переименуйте операции.

http://msdn.microsoft.com/en-us/library/aa363858 (По сравнению с 85) .aspx

Поэтому, если Вы, может управлять Вашими приложениями, можно использовать этот флаг.

8
ответ дан 30 November 2019 в 04:44
поделиться

Нет. Windows разработан для "среднего пользователя", который является людьми, которые ничего не понимают о компьютере. Поэтому ОС пытается быть умной для предотвращения PEBKAC с. Заключить Bill Gates в кавычки: "Нет никаких проблем с Windows, что любое число людей хочет быть зафиксированным". Конечно, он знает, что 99,9999% всех пользователей Windows не может сказать, сделала ли программа просто что-то нечетное из-за них или парня, который записал это.

Unix был разработан, когда мир был более простым и любой достаточно близко к компьютеру для касания его, вероятно, знал, как собрать его от грязного песка. Поэтому ОС обычно позволяет Вам сделать то, что Вы хотите, потому что она предполагает, что Вы знаете лучше (и если Вы не сделали, Вы будете в следующий раз).

Технический ответ: Unix выделяет "i-узлы" при создании файла. I-узлы могут быть совместно использованы процессами. Если два процесса создают тот же файл (то есть, два вызова процессов создают () с тем же путем), то Вы заканчиваете с двумя i-узлами. Это дизайном. Это допускает необычное средство защиты: можно создать файлы, которые никто не может открыть, но Вы:

  1. Открываются, файл
  2. Удаляют его (но сохраните дескриптор файла)
  3. Использование файл любым путем Вам нравится
  4. Близко файл

После шага № 2, единственный процесс во вселенной, кто может получить доступ к файлу, является тем, который создал его (если Вы не хотите считать блок жесткого диска блоком). ОС поддержит данные до Вас или закрыться, файл или Ваш процесс умирают (в котором Unix времени вымоется после Вас).

Этот дизайн является основой всех файловых систем Unix. Файловая система Windows работы NTFS почти такой же путь, но API высокого уровня отличается. Много приложений открывают файлы в эксклюзивном режиме (который предотвращает любого, даже резервные программы) считать файл. Это даже верно для приложений, которые просто отображают информацию как средства просмотра PDF.

, Который означает, что необходимо будет исправить все приложения Windows для достижения желаемого эффекта. Если у Вас есть доступ к источнику, можно создать файл в общем режиме. Это позволило бы другим процессам получать доступ к нему одновременно, но затем, необходимо будет проверить перед каждым чтением-записью, если файл все еще существует, внес ли кто-то изменения, и т.д.

9
ответ дан 30 November 2019 в 04:44
поделиться

Обратите внимание, что Проводник Процесса позволяет, чтобы сила закрылась дескрипторов файлов (для процессов, локальных для поля, на котором Вы выполняете его) через Дескриптор-> Близкий Дескриптор.

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

Также удаление на перезагрузке является опцией (хотя это походит не то, что Вы хотите)

3
ответ дан 30 November 2019 в 04:44
поделиться

Это действительно не помогает, если подвешенный процесс все еще имеет открытый дескриптор. Это не высвободит средства, пока тот подвешенный процесс не выпустит дескриптор. Но так или иначе, в Windows возможно вынудить покинуть близко файл процесс, это использует его. Проводник процесса с sysinternals.com позволит Вам посмотреть на и близко обрабатывает это, процесс имеет открытый.

1
ответ дан 30 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: