Документ Microsoft Word.docx
Имя файла: Документ Microsoft Word.docx Размер файла: 214.78 KB Файл загружен: 13/04/2021 19:48:15 Файл скачали: 1378 Поделиться этой ссылкой |
<a href=»https://wdfiles.ru/902745″ target=»_blank» title=»Download from загрузить файл»>Скачать Документ Microsoft Word.docx — загрузить файл</a>
[url]https://wdfiles.ru/902745[/url]
подойдёт для вставки в документы или презентации.
Или получить файл на мобильное устройство, отсканировав QR-код программой с мобильного устройства
Приветствуем Вас на файлообменнике WdFiles.ru!
Ресурс WDfiles.RU был задуман как бесплатный файлообменник. Согласитесь, удобно с его помощью делиться файлами, или перемещать их с одного устройства на другое!
Всем спасибо за использование нашего ресурса!
Преимущества:
Прямые загрузки. Без ожидания.
Отсутствие рекламы.
Неограниченное количество загрузок.
Максимальная скорость загрузки.
Техподдержка (support@wdfiles.ru).
Неограниченная файловая зона.
Файлы в премиум-аккаунте хранятся вечно.
Загрузка файла размером свыше 10.00 GB .
Отсутствие ограничения на загрузки.
Низкая цена в сутки.
Отсутствие подписок.
Здравствуйте, уважаемые коллеги! Прошу не судить строго, так как это моя первая статья.
У нас появилась необходимость отслеживать изменения в doc и docx файлах с фиксацией имени пользователя, который внес эти изменения. Сами файлы находятся в расшаренной папке (да, да, общие папки это зло, но убедить у меня не получилось) и необходимо знать кто внес изменения. Подробнее под катом.
Сами изменения в файлах будем отслеживать при помощи watchdog (pip install watchdog).
Код для отслеживания всех изменений:
# Для отслеживания изменений
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# Отслеживаем изменения
class Watcher:
def __init__(self, path):
self.observer = Observer()
self.path = path
def run(self):
event_handler = Handler()
self.observer.schedule(event_handler, self.path, recursive=True)
self.observer.start()
try:
while True:
time.sleep(1)
except:
self.observer.stop()
print("Error")
self.observer.join()
class Handler(FileSystemEventHandler):
@staticmethod
def on_any_event(event):
if event.is_directory:
return None
print(
"[{}] noticed: [{}] on: [{}] ".format(
time.asctime(), event.event_type, event.src_path
)
)
if __name__ == "__main__":
w = Watcher('C:\Users\user\Desktop\')
w.run()
Такой код позволяет отслеживать изменения во всех файлах (не показывая кто изменил) на рабочем столе пользователя. Естественно, папку «C:UsersuserDesktop» эту указал для примера.
Пример вывода:
[Mon Dec 5 14:32:37 2022] noticed: [modified] on: [C:UsersuserDesktopДокумент Microsoft Word.docx]
Тут нет информации о том, кто изменил файл. Эту информацию можно получить из самого docx файла.
Нам нужно отслеживать изменения именно в doc и docx файлах, поэтому переделаем код:
# -*- coding: utf-8 -*-
# Для атрибутов файла
import docx
# Для отслеживания изменений
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# Отслеживаем изменения
class Watcher:
def __init__(self, path):
self.observer = Observer()
self.path = path
def run(self):
event_handler = Handler()
self.observer.schedule(event_handler, self.path, recursive=True)
self.observer.start()
try:
while True:
time.sleep(1)
except:
self.observer.stop()
print("Error")
self.observer.join()
class Handler(FileSystemEventHandler):
@staticmethod
def on_any_event(event):
# if event.is_directory:
# return None
# print(
# "[{}] noticed: [{}] on: [{}] ".format(
# time.asctime(), event.event_type, event.src_path
# )
# )
# Получаем атрибуты файла
if '.tmp' in event.src_path:
return None
try:
document = docx.Document(docx = event.src_path)
core_properties = document.core_properties
print(f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}')
except:
pass
if __name__ == "__main__":
w = Watcher('C:\Users\user\Desktop\')
w.run()
В данном примере изменения просто печатаются в консоль при помощи строки:
print(f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}’)
Пример вывода:
Иванов Иван Иванович в 2022-12-05 07:35:00 модифицировал файл C:UsersuserDesktopДокумент Microsoft Word.docx
Для журналирования можно использовать простейшую запись в файл:
f = open('change-doc.log','w') # открытие в режиме записи
f.write(f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}n') # запись в файл
f.close() # закрытие файла
Или можно отправлять изменения на почту (если это востребовано):
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
fromaddr = "test@mail.ru"
toaddr = "test2@mail.ru"
mypass = "password"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = f'Модифицирован файл {event.src_path}'
body = f'{core_properties.last_modified_by} в {core_properties.modified} модифицировал файл {event.src_path}'
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP_SSL('smtp.mail.ru', 465)
server.login(fromaddr, mypass)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
Также приведу полный список атрибутов docx файла, которые можно таким же образом получить:
file_name = 'C:\Users\user\Desktop\123.docx'
document = docx.Document(docx = file_name)
core_properties = document.core_properties
print('author', core_properties.author)
print('created', core_properties.created)
print('last_modified_by', core_properties.last_modified_by)
print('last_printed', core_properties.last_printed)
print('modified', core_properties.modified)
print('revision', core_properties.revision)
print('title', core_properties.title)
print('category', core_properties.category)
print('comments', core_properties.comments)
print('identifier', core_properties.identifier)
print('keywords', core_properties.keywords)
print('language', core_properties.language)
print('subject', core_properties.subject)
print('version', core_properties.version)
print('keywords', core_properties.keywords)
print('content_status', core_properties.content_status)
Спасибо за внимание!!!
Максим_19 0 / 0 / 0 Регистрация: 15.04.2017 Сообщений: 10 |
||||
1 |
||||
18.06.2017, 12:45. Показов 1450. Ответов 3 Метки нет (Все метки)
Здравствуйте. Как при сохранении файла указать его имя в виде текущей даты?
Но так ругается
0 |
Sigma214 44 / 44 / 24 Регистрация: 01.05.2012 Сообщений: 178 |
||||
18.06.2017, 12:54 |
2 |
|||
Вроде так можно сделать.
1 |
0 / 0 / 0 Регистрация: 15.04.2017 Сообщений: 10 |
|
18.06.2017, 13:03 [ТС] |
3 |
Спасибо, уже разобрался.
0 |
Diamante 3453 / 2461 / 1169 Регистрация: 14.08.2016 Сообщений: 8,153 |
||||
18.06.2017, 13:09 |
4 |
|||
1 |
Sub макрос()
Dim doc As Document
‘ Включение перехватчика run-ошибок, чтобы макрос продолжил работу при возникновении
‘ run-ошибки.
On Error Resume Next
‘ Присваиваем файлу имя «doc». Если файл не открыт, то в переменной «doc» будет Nothing.
Set doc = Documents(«C:UsersUserDesktopДокумент Microsoft Word.docx»)
‘ Отключение перехватчика ошибок, чтобы видеть непредвиденные ошибки.
On Error GoTo 0
‘ Проверка, открыт файл или нет.
If doc Is Nothing Then
MsgBox «Файл не открыт.», vbInformation
Else
MsgBox «Файл открыт.», vbInformation
End If
End Sub
[свернуть]
Как и большинство приложений, вы можете запустить Word из командной строки. Word также поддерживает несколько дополнительных параметров для управления процессом запуска.
Независимо от того, вводите ли вы команду в командной строке, используете ее для создания ярлыка, вставляете ее как часть пакетного сценария, запуск Word с дополнительными параметрами позволяет выполнять такие действия:
- запуск Word в безопасном режиме для устранения неполадок;
- запуск с помощью определенного шаблона.
Чтобы открыть Word с помощью командной строки, нам нужно выяснить, в каком каталоге находится исполняемый файл winword.exe. Вы можете сделать это вручную или использовать командную строку. Для этого нажмите значок «Лупа» рядом с кнопкой «Пуск» и в поиске наберите «cmd “ и откройте командную строку, выбрав приложение ”Командная строка».
Когда вы откроете командную строку, вы окажетесь в каталоге верхнего уровня—папке учетной записи пользователя. Нам нужно переместиться глубже, в каталог Program Files. Для этого введите следующую команду и нажмите клавишу Enter:
cd”program files (x86)”
Теперь вы будете находиться в каталоге Program Files. Следующий шаг — найти каталог, в котором находится файл winword.exe. Для этого введите следующую команду и нажмите “Enter.”
dir winword.exe /s
После ввода этой команды вы увидите расположение искомого файла. На скриншоте выделено желтой рамкой.
Теперь, когда вы знаете, где находится winword.exe-файл, используйте команду cd, чтобы открыть путь к файлу. Введите следующую команду:
cd Microsoft OfficeOffice16
Теперь вы переместитесь в каталог, где расположен исполняемый файл winword. Чтобы открыть Microsoft Word так же, как если бы вы открывали его через значок, все, что вам нужно сделать, это ввести winword, а затем нажмите “Enter”. Word откроется обычным способом.
Однако весь смысл использования команды заключается в том, что вы можете использовать различные ключи и параметры, которые она предлагает.
Запуск Word из командной строки с различными ключами и параметрами
Позаимствовано с официального сайта поддержки Microsoft Office, вот список некоторых возможных способов открыть Word, вместе с соответствующей командой.
Ключ и параметр | Описание |
/safe | Запускает Word в безопасном режиме без каких-либо дополнительных надстроек, шаблонов и других настроек. Это полезно при устранении неполадок в Word. Вы также можете запустить Word в безопасном режиме, удерживая клавишу Ctrl при запуске Word из меню Пуск |
/q | Запускает Word без отображения заставки Word. |
/ttemplatename | Запускает Word с новым документом на основе шаблона, отличного от обычного шаблона. Пример: Предположим, мы хотели открыть документ, хранящийся на диске C под названием example.docx, тогда указываем следующую команду:/tc:example.docx Примечание: не ставьте пробел между ключом и именем файла. |
/t filename | Запускает Word и открывает существующий файл. Пример: чтобы запустить Word и открыть существующий файл пример.docx, хранящийся на диске C, введите следующее:/t c:пример.docx Чтобы открыть сразу несколько файлов, расположенные на диске C, введите следующее:/t c:пример.docx c:пример2.docx |
/f filename | Запускает Word с новым документом на основе существующего файла. Пример: чтобы запустить Word и создать новый документ на основе файла пример.docx, хранящегося на рабочем столе, введите следующее:/f “C:UserspcuserDesktopпример.docx |
/a | Запускает Word и предотвращает автоматическую загрузку надстроек и глобальных шаблонов (включая обычный шаблон). Кроме того, он блокирует файлы настроек. |
/m | Запускает Word без запуска макросов AutoExec. |
/n | Запускает новый экземпляр Word без открытого документа. Документы, открытые в каждом экземпляре Word, не будут отображаться в списке переключателей Windows других экземпляров. |
/r | Перерегистрация Word в реестре Windows. Этот параметр запускает Word, запускает программу установки Office, обновляет реестр Windows и закрывает программу |
Дорогой читатель! Вы посмотрели статью до конца.
Получили вы ответ на свой вопрос? Напишите в комментариях пару слов. Если ответа не нашли, укажите что искали или откройте содержание блога.
ОЧЕНЬ ВАЖНО! Оцени лайком или дизлайком статью!