Балансовая стоимость ос: Что такое балансовая стоимость основных средств \ Акты, образцы, формы, договоры \ КонсультантПлюс

Содержание

Балансовая стоимость ОС — разница между первоначальной стоимостью ОС с учетом переоценки и суммой накопленной амортизации

  • Посилання скопійовано

Как определяется балансовая стоимость при признании условной поставки основных средств, которые приобретены для использования в налогооблагаемых операциях, а фактически будут использоваться в необлагаемых операциях?

30.01.20127 132

  • Посилання скопійовано

Согласно п. 188.1 ст. 188 р. V НКУ, с изменениями и дополнениями, в случае поставки необоротных активов, в т. ч. в случае их самостоятельной ликвидации, перевода из производственных в непроизводственные, перевода из использования в налогооблагаемых операциях для использования в необлагаемых база налогообложения определяется исходя из их балансовой стоимости на момент их поставки.

В соответствии с п. 14.1.9 ст. 14 р. I НКУ балансовая стоимость основных средств, других необоротных и нематериальных активов — сумма остаточной стоимости таких средств и активов, которая определяется как разница между первоначальной стоимостью с учетом переоценки и суммой накопленной амортизации.

 

Рубрика: Оподаткування/Загальні положення

  • Основні засоби
  • ПКУ

Зверніть увагу: новинна стрічка «Дебету-Кредиту» містить не тільки редакційні матеріали, але також статті сторонніх авторів, роз’яснення співробітників фіскальної служби тощо.

Дані матеріали, а також коментарі до них, відображають виключно точку зору їх авторів і можуть не співпадати з точкою зору редакції. Редакція не ідентифікує особи коментаторів, не модерує тексти коментарів та не несе відповідальності за їх зміст.

30 днiв передплати безкоштовно!Оберiть свiй пакет вiд «Дебету-Кредиту»
на мiсяць безкоштовно!Спробувати
  • 30 червня – останній день сплати податків за травень

    За даними ДПС, 30 червня є граничним терміном сплати податкових зобов’язань за травень 2023 року. Але ті, хто поки що не має можливості сплатити податки та підтвердили це, зможуть сплатити після закінчення війни

    28.06.20231 571

  • Зеленський зробив заяву щодо зниження податків в Україні

    Президент зазначив, що Україні потрібні новий раціональний податковий договір між державою та суспільством і реальна легалізація майна. Але наразі Україна не може знизити податки через залежність від співпраці з фіндонорами

    28.06.2023133

  • Мінфін вніс «косметичні» правки до Порядку повернення помилково сплачених податків та зборів

    Мінфін Наказом затвердив зміни до Порядку повернення (перерахування) коштів, помилково або надміру зарахованих до державного та місцевих бюджетів. Вони повʼязані з приведенням його норм у відповідність до нових правил надання фінпослуг

    27.06.20232 527

  • Комітет Гетманцева визначився з остаточною версію законопроєкту №8401 та рекомендував ВРУ прийняти його

    21 червня Комітет ВРУ підготував текст законопроєкту №8401 до ІІ читання та рекомендує ВРУ прийняти його. Набрання чинності Законом відбудеться 1 серпня, а розгляд у залі ВРУ – у червні. З 1 серпня буде скасовано спецгрупу ЄП, розпочнуться перевірки ДПС

    21.06.202311 95324

  • Як з 1 липня потрібно буде заповнювати платіжки для сплати податків та ЄСВ: нагадування від ДПС

    Нових деталей податківці не навели, але підкреслили, що з 1 липня реквізити «Призначення платежу» платіжної інструкції передбачають поля встановленого формату: «Код виду сплати» та «Додаткова інформація запису»

    21. 06.202318 8217

Как в отдельных случаях определить балансовую стоимость ОС для целей начисления налоговой амортизации?

Ситуация 1

У плательщика налога на прибыль, который корректирует финрезультат до налогообложения на разницы, предусмотренные разд. III НК, есть объект ОС, который изначально не был предназначен для использования в хозяйственной деятельности, допустим, легковой автомобиль, на котором ездят члены семьи директора предприятия. 

Согласно пп. 138.3.2 НК такой автомобиль считается непроизводственным ОС. Поэтому плательщик, в частности, не имеет права на налоговые расходы в сумме амортизации такого объекта и не определяет его балансовую стоимость для целей налогового учета. 

Предположим, плательщик принял решение отдать «непроизводственный» автомобиль в пользование бухгалтерии предприятия. То есть перевести его в производственные объекты ОС и начислять налоговую амортизацию. 
В таком случае налоговая балансовая стоимость этого объекта на дату перевода будет равняться его балансовой остаточной стоимости по данным бухучета, но с учетом его ликвидационной стоимости (см. ИНК ГФС от 18.05.18 г. № 2212/6/99-99-15-02-02-15/ІПК). 

Важный нюанс! Если объект ОС переоценивался по правилам бухучета, то для определения его налоговой балансовой стоимости суммы таких переоценок не учитываются (пп. 138.3.1 НК). 

Например, первоначальная стоимость автомобиля – 300 000 грн., ликвидационная стоимость – 3 000 грн., начисленный износ на дату перевода – 198 000 грн. Автомобиль не переоценивался. 

Балансовая стоимость автомобиля для целей налоговой амортизации будет равна 99 000 грн. (300 000 грн. – 3 000 грн. – 198 000 грн.).

Ситуация 2

Допустим, плательщик налога на прибыль до 1 января 2018 года не корректировал финрезультат до налогообложения на разницы, предусмотренные разд. III НК. Поэтому он не вел налоговый учет своих ОС и не определял их балансовую стоимость для целей такого учета. Начиная с 2018 года ему придется делать такие корректировки. Как такому плательщику определить налоговую балансовую стоимость своих ОС?

В этой ситуации плательщику также нужно ориентироваться на данные бухучета. То есть для целей начисления налоговой амортизации, как и в случае с непроизводственными объектами ОС, надо брать амортизируемую стоимость объекта ОС за вычетом начисленной на него амортизации согласно данным бухучета по состоянию на 1 января 2018 года и суммы проведенных переоценок.

А как определить срок полезного использования (далее – СПИ) объекта ОС для целей начисления налоговой амортизации?

Для определения такого срока нужно сравнить СПИ объекта ОС, установленный в бухучете, с минимально допустимым СПИ, предусмотренным пп. 138.3.3 НК для налоговой группы такого объекта.

Если бухгалтерский СПИ: 

  • меньше налогового – для целей начисления налоговой амортизации берется налоговый СПИ с учетом фактического срока использования объекта; 
  • превышает налоговый – для целей начисления налоговой амортизации применяется бухгалтерский СПИ с учетом фактического срока использования объекта. 

Возьмем, к примеру, ситуацию с автомобилем. Предположим, что его бухгалтерский СПИ составляет 3 года, в то время как налоговый СПИ – 5 лет (группа 5 – транспортные средства). Автомобиль находился в эксплуатации 2 года. Для целей налоговой амортизации устанавливаем оставшийся срок амортизации 3 года (5 лет – 2 года).

Ситуация 3

Плательщик налога на прибыль начиная с 2015 года вел налоговый учет ОС, потом, в течение 2016 и 2017 годов, не вел, а в 2018-м опять вынужден определять разницы, предусмотренные разд. III НК, и, соответственно, вести налоговый учет ОС. Как такому плательщику определить налоговую балансовую стоимость ОС по состоянию на 1 января 2018 года? 

Разъяснений контролирующего органа по данному вопросу в общем доступе нет. Считаем, что в таком случае налоговая балансовая стоимость ОС будет определяться по общим правилам, приведенным выше. Вместе с тем рекомендуем плательщикам получить индивидуальную налоговую консультацию в отношении своей ситуации и действовать согласно такой консультации.

Статистика OpenIntro

все

видео

слайды

лабораторные работы

другое

OpenIntro Statistics рекомендуется для курсов колледжа и самостоятельного изучения.

Amazon KDP поднимает цены на печать примерно на 40% в середине июня. В результате мы поднимем цены на черно-белые книги в мягкой обложке, чтобы компенсировать эти возросшие расходы, до 25 долларов США. Несмотря на увеличение на 5 долларов, чтобы попытаться компенсировать затраты, мы ожидаем, что маржа за вычетом наших затрат уменьшит нашу общую маржу после учета того, что мы ожидаем, что продажи будут немного медленнее. То есть в общей сложности многие десятки тысяч долларов, которые студенты будут платить за это повышение цен каждый год, принесут пользу Amazon, а не OpenIntro, и OpenIntro, скорее всего, потеряет деньги на чистом доходе / затратах в результате этих изменений цен. В результате этого изменения мы также более активно изучаем альтернативные Amazon принтеры, которые обеспечивают более высокое качество книг, а также продают больше книг за пределами Amazon.

Все ссылки нашего сайта/ресурса на Amazon являются партнерскими ссылками. Когда вы совершаете покупки на Amazon, используя эти ссылки, мы получаем небольшую комиссию без дополнительной оплаты для вас.

 БЕСПЛАТНО — OpenIntro Statistics PDF

Если вы хотите пропустить дополнительный взнос, установите цену 0 

долларов США.
25 долл. США — черно-белая мягкая обложка

Доступно на Amazon и в некоторых книжных магазинах

 26,74 долл. США — Цветная книга в мягкой обложке (иногда со скидкой)

Текущая цена не требует авторских отчислений, и мы планируем повысить ее уже в конце июня, в конечном итоге доведя ее до 40 долларов. Цена в 40 долларов даст OpenIntro 5,28 лицензионных отчислений, а разница останется у Amazon. Если мы увидим значительное увеличение добровольных взносов пользователей, загружающих PDF, мы отложим это увеличение.

БЕСПЛАТНО — Book PDF Best for Screen Readers

Более подробное оглавление, дополнительный текст для облегчения навигации (например, явное указание начала и окончания примера) и «замещающий текст» для всех изображений. Обратите внимание, что номера страниц *не* совпадают с исходным PDF-файлом, поэтому используйте номера разделов, рисунков, примеров и т. д. для ссылок и навигации. Отправьте отзыв через страницу openintro.org/contact.

Цели обучения

Что, как мы надеемся, учащиеся узнают из этих ресурсов

Наборы данных

Список наборов данных и возможность загрузки файлов

Где найти больше наборов данных

Невероятный список данных, организованный Шондой Койпер

Отправить отзыв или сообщить об опечатке

Мы ценим отзывы, как положительные, так и отрицательные

Список известных опечаток в учебниках

Просмотр опечаток и разъяснений в учебнике


Для тех, кто использует переведенную версию, пожалуйста, пришлите свои теплые пожелания команде, занимающейся этими переводами! Мы глубоко ценим их вклад в сообщество!

Команда японских преподавателей создала перевод на японский язык! Этот перевод доступен ниже как в формате PDF (на странице доктора Кунитомо), так и в доступной мягкой обложке (через Японскую статистическую ассоциацию).

 БЕСПЛАТНО — японский перевод OpenIntro Statistics PDF

Перевод Наото Кунитомо, Ясуси Йошида и Ацуюки Когуре

 Японский перевод, черно-белая мягкая обложка за 1 980 иен

Перевод Наото Кунитомо, Ясуси Ёсида и Ацуюки Когуре

Китайский перевод разрабатывается Шияо Ван и Сюэци Ли! Недавний черновик прогресса доступен ниже.

 БЕСПЛАТНО — китайский перевод глав 1 и 2 (PDF)

Перевод Шияо Вана и Сюэци Ли

Следите за обновлениями перевода на китайский язык в WeChat

ведет на страницу WeChat

Книги в мягкой обложке, указанные ниже, предназначены для английской версии, которая также доступна в некоторых странах через Amazon.

 Нажмите, чтобы увидеть все международные варианты

Бумажные обложки для Канады, Великобритании, Индии, Германии и других стран


Ресурсы для учителей, некоторые из которых ограничены Только проверенные учителя . Слайды, лабораторные работы и другие ресурсы также можно найти в соответствующих разделах глав ниже.

Узнайте о проверке учителя

Преимущества, варианты подачи заявки и процесс проверки

Запрос настольной копии учебника (только для США)

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

Решения для упражнений OpenIntro Statistics

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

Заказ в книжном магазине (оптом)

Варианты оптовой покупки только для торговых посредников

MyOpenMath: программное обеспечение для онлайн-курсов

Бесплатное программное обеспечение для курсов, доступны шаблоны курсов OpenIntro

MyOpenMath: настройка курса OpenIntro

Для некоторых книг OpenIntro существуют шаблоны курсов

Статистика OpenIntro, информация о прошлых выпусках

Информация о содержимом, ценах и доступности

Страница учителей с дополнительными ресурсами

Некоторые общедоступные ресурсы, другие доступны только проверенным учителям


OpenIntro Statistics, Syllabus 1

Mine Çetinkaya-Rundel, Duke University

Статистика OpenIntro, учебный план 2

Карри Хилтон, Университет Алабамы

Статистика OpenIntro, учебный план 3

Альберт Ким, Миддлберийский колледж


Только проверенных учителей .

Экзамены по статистике OpenIntro, набор 1

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

Экзамены по статистике Openintro, набор 2

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

Банк экзаменационных вопросов с несколькими вариантами ответов (RExams)

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

Статистика OpenIntro, образцы экзаменов (Адам Гилберт)

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

ISLBS, Образцы промежуточных и выпускных экзаменов (Джули Ву)

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

ISRS, образец промежуточного и итогового экзамена (Альберт Ким)

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


Эти ресурсы дают представление о том, чем занимаются статистики, также известные как ученые данных , делают в реальном мире.

 Видео о применении статистики

Изучите приложения статистики с помощью этих коротких видеороликов!

Почему термин «Наука о данных» сбивает с толку

Два основных типа специалистов по данным: A анализ и B здание


 Видео для каждого раздела

Знакомство с данными: 5 видео

 Слайды для каждого раздела  

Доступны варианты Google Slides и LaTeX

Лаборатория — введение в статистическое программное обеспечение

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, SAS, Stata


 Видео для каждого раздела

Обобщающие данные: 3 видео

 Слайды для каждого раздела Доступны варианты eX

Лаборатория — Введение в данные

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata

Занятие в классе: описательные меры

Сбор и изучение данных Instagram


 Видео для некоторых разделов

Вероятность: 3 видео

 Слайды для каждого раздела Доступны варианты s и LaTeX

Лаборатория — Вероятность

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata


 Видео для некоторых разделов

Раздачи: 3 видео

 Слайды для каждого раздела  

Google Slides Доступны варианты LaTeX

Лаборатория — обычное распределение

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata

Занятие в классе: распределение выборки

Представлено на конференции Women in Stat and DS

Калькулятор нормального распределения

Онлайн-инструмент для расчета нормального распределения


 Видео для каждого раздела

Основания для выводов: 4 видео

Почему мы используем 0,05 в качестве уровня значимости?

Пытливые умы хотят знать — давайте исследовать!

 Слайды для каждого раздела  

Доступны варианты Google Slides и LaTeX

 Лаборатория — Введение в вывод

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata

 Лаборатория — уровни достоверности

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata

Одностраничное руководство по логическому выводу

Охватывает одновыборочный анализ и разность средних и пропорций


 Видео для каждого раздела

Вывод для категорийных данных: 3 видео

 Слайды для каждого раздела  
90 002 Доступны варианты Google Slides и LaTeX

 Лаборатория — Вывод категорийных данных

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata

Проверка гипотез для малых пропорций выборки

Дополнительный раздел: Когда условие успеха-неудачи не выполняется

Онлайн-приложение для Центральной предельной теоремы для пропорций

Это блестящее приложение для исследования


 Видео для каждого раздела

Вывод для категорийных данных: 8 видео раздел  

Доступны варианты Google Slides и LaTeX

 Лаборатория — вывод числовых данных

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata

Упражнение в классе: Сопоставление

Учащиеся сравнивают и соотносят рейтинги фильмов

Размер и мощность выборки (одна выборка)

Дополнительный раздел: мощность в сценарии одной выборки

Лучшее понимание расчетов ANOVA

Дополнительный раздел: Детали ANOVA

Онлайн-приложение для Центральной предельной теоремы для средств

Это блестящее приложение для исследования


 Видео для каждого раздела

Введение в линейную регрессию: 5 видео 

Доступны варианты Google Slides и LaTeX

 Лаборатория — линейная регрессия

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata


 Видео для некоторых разделов

Множественная и логистическая регрессия: 4 видео 2

Доступны варианты Google Slides и LaTeX

Лаборатория — Множественная регрессия

Программное обеспечение: R (Base), R (Tidyverse), Rguroo, Jamovi, JASP, Python, SAS, Stata

Дополнительные выводы для линейной регрессии

Дополнительный раздел: Доверительные интервалы и интервалы прогнозирования

Термины взаимодействия

Дополнительный раздел: Когда предикторы комплексно влияют на результаты

Регрессия для нелинейных отношений

Дополнительный раздел: Когда прямая линия не имеет смысла

Онлайн-приложение для лучшего понимания регрессии

Это приложение Shiny для исследования


 Примеры рабочих упражнений (видео)

Плейлист сборника отработанных упражнений

 Видеоруководство: Casio fx-9750GII

Плейлист, охватывающий все темы вводной статистики для этого калькулятора

 Видеоруководство: TI-83 и TI-84

Плейлист со всеми темами вводной статистики для обоих калькуляторов

Руководство по графическому калькулятору Casio fx-9750GII

Письменное руководство по вводным функциям статистики

Руководство по графическому калькулятору TI-83 / TI-84

Письменное руководство по вводным функциям статистики

Калькуляторы распределения

Охватывает нормальное, t и распределение хи-квадрат

Таблицы вероятностей

Охватывает нормальное распределение, распределение t и распределение хи-квадрат

OpenIntro Statistics исходные файлы LaTeX

ведет к репозиторию Github


Эти проекты были завершены в первые годы существования OpenIntro.

Мы рассмотрим возможность публикации новых студенческих проектов, представленных совместно проверенным учителем и учащимися.

Лоббирование и SOPA/PIPA

Стажерский проект завершен Люком Полсеном

Данные для лоббирования и SOPA/PIPA

Исходный набор данных

R Код для лоббирования и проекта SOPA/PIPA

Запуск для воспроизведения анализа

Моделирование роста населения в США

Стажерский проект завершен Люком Полсеном

Данные для моделирования роста населения в США

Обновленный набор данных

Код R для моделирования роста населения в США

Набор данных и имена переменных могут нуждаться в обновлении

Флуоресцентный резонансный перенос энергии

Себастьян Рашка

Моделирование начальной загрузки

Автор Yiyang Hu

Наш международный имидж

Райан Бун, Канья Маной, Джейкоб Ционсе

Моделирование смертности с помощью Env.
Вар.

Фернандес XD, Дэвис К., Вейшампель А., Макмиллан А.


Помимо набора учебников, которые мы предлагаем на openintro.org, многие другие авторы сделали свои книги общедоступными. Ссылки ниже ведут на места, где эти другие авторы размещали свои книги бесплатно для всех.

Статистический вывод с помощью Data Science

Книга в мягкой обложке стоит около 75 долларов США

Первый курс планирования и анализа экспериментов

Включает дополнительные ресурсы

Введение в статистическое обучение

Физические копии стоят около 80 долларов США

Элементы статистического обучения

Физические копии стоят около 90 долларов США

Принципы эпидемиологии в практике общественного здравоохранения

Версия для печати на bookstore.phf.org примерно за 65 долларов США

Анализ выживаемости в R

Материалы семинара и руководство по анализу выживаемости в R

Введение в теорию вероятностей

Физические копии стоят около 60 долларов

Практическая регрессия и дисперсионный анализ с использованием R

Связанное название публикации: Linear Models with R

Think Stats

Физические копии стоят около 30 долларов США

Совместная статистика на CNX.
org

Физические копии стоят около 30 долларов на Lulu

CK-12 Вероятность и статистика

CK-12 предлагает множество учебников с открытым исходным кодом

Введение в статистическое мышление

Высшее подразделение или вступительный уровень

Введение в теорию вероятностей и статистику с использованием R

Доступно на R-Forge

Обучение онлайн-статистике

Интерактивный мультимедийный курс обучения

Введение в статистическое мышление

С R, без исчисления


Модуль os — Стандартная библиотека Python [Книга]

Модуль os обеспечивает унифицированный интерфейс для многих операционных систем. системные функции.

Большинство функций в этом модуле реализуются специфичными для платформы модулями, такими как posix или nt . ОС модуль автоматически загружает правильный модуль реализации, когда он впервые импортируется.

Работа с файлами

Встроенная функция open позволяет создавать, открывать, и измените файлы, как показано в примере 1-27. Этот модуль добавляет те дополнительные функции, которые вам нужны переименовывать и удалять файлы.

Пример 1–27. Использование модуля os для переименования и удаления файлов

 Файл: os-example-3.py
импорт ОС
строка импорта
def заменить (файл, search_for, replace_with):
    # заменить строки в текстовом файле
    назад = os.path.splitext(файл)[0] + ".bak"
    temp = os.path.splitext(файл)[0] + ".tmp"
    пытаться:
        # удалить старый временный файл, если он есть
        os.remove (темп)
    кроме ос.ошибка:
        проходить
    fi = открыть (файл)
    fo = открыть (темп, "w")
    для s в fi.readlines():
        fo.write(string.replace(s, search_for, replace_with))
    fi.close()
    fo.close()
    пытаться:
        # удалить старый файл резервной копии, если он есть
        os.remove (назад)
    кроме ос. ошибка:
        проходить
    # переименовать оригинал в резервную копию...
    os.rename(файл, назад)
    # ...и временно к исходному
    os.rename(temp, файл)
#
# попробуй!
файл = "образцы/sample.txt"
заменить(файл, "привет", "тьена")
заменить(файл, "tjena", "привет") 

Работа со справочниками

Модуль os также содержит множество функций, которые работают на всей каталоги.

Функция listdir возвращает список всех имена файлов в данном каталоге, как показано в примере 1-28. Текущий и родительский каталог маркеры, используемые в Unix и Windows ( . и .. ) в этот список не входят.

Пример 1–28. Использование модуля os для вывода списка файлов в каталоге

 Файл: os-example-5.py
импорт ОС
для файла в os.listdir("образцы"):
    распечатать файл
   образец.au  
   образец.jpg  
   образец.wav  
   . ..   

getcwd и chdir функции используются для получения и установки текущего каталога, как показано в примере 1-29.

Пример 1–29. Использование модуля os для изменения рабочего каталога

 Файл: os-example-4.py
импорт ОС
# Где мы?
cwd = os.getcwd()
напечатать "1", cwd
# опускаться
os.chdir ("образцы")
напечатать "2", os.getcwd()
# вернуться наверх
os.chdir(ос.пардир)
напечатать "3", os.getcwd()
   1 /ematter/librarybook  
   2 /ematter/librarybook/samples  
   3 /ematter/librarybook   

вместо и удалили функции используются для создания и удаления иерархий каталогов, как показано в примере 1-30.

Пример 1-30. Использование модуля os для создания и удаления нескольких каталогов Уровни

 Файл: os-example-6.py
импорт ОС
os.makedirs("тест/несколько/уровни")
fp = открыть ("тест/несколько/уровни/файл", "w")
fp. write("инспектор пралине")
fp.close()
# удалить файл
os.remove("тест/несколько/уровни/файл")
# и все пустые каталоги над ним
os.removedirs("тест/несколько/уровни") 

Обратите внимание, что removeirs удаляет все пустые каталоги по заданному пути, начиная с последнего каталога в заданный путь. Напротив, mkdir и rmdir функции могут обрабатывать только один уровне каталога, как показано в примере 1-31.

Пример 1-31. Использование модуля os для создания и удаления каталогов

 Файл: os-example-7.py
импорт ОС
os.mkdir("тест")
os.rmdir("тест")
os.rmdir("samples") # это не удастся
   Трассировка (самая внутренняя последняя):  
     Файл "os-example-7", строка 6, в ?  
   OSError: [Errno 41] Каталог не пуст: «образцы»   

Чтобы удалить непустые каталоги, вы можете использовать Функция rmtree в модуле Shutil .

Работа с атрибутами файла

Функция stat извлекает информацию о существующий файл, как показано в примере 1-32. Он возвращает 9-кортеж, который содержит размер, inode изменить отметку времени, отметку времени модификации и привилегии доступа.

Пример 1–32. Использование модуля os для получения информации о файле

 Файл: os-example-1.py
импорт ОС
время импорта
файл = "образцы/образец.jpg"
деф дамп(ст):
    режим, ino, dev, nlink, uid, gid, размер, atime, mtime, ctime = st
    print "- size:", size, "bytes"
    print "- owner:", uid, gid
    напечатать "- создано:", time.ctime(ctime)
    print "- последнее обращение:", time.ctime(atime)
    print "- последнее изменение:", time.ctime(mtime)
    напечатать "- режим:", окт(режим)
    print "- inode/dev:", ino, dev
#
# получить статистику для имени файла
st = os.stat(файл)
распечатать "статистику", файл
свалка (ул.)
Распечатать
#
# получить статистику по открытому файлу
fp = открыть (файл)
ул = os. fstat(fp.fileno())
напечатать "fstat", файл
свалка (ул.)
   статистические образцы/sample.jpg  
   - размер: 4762 байта  
   - владелец: 0 0  
   - создано: вторник, 07 сентября, 22:45:58 1999  
   - последний доступ: Воскресенье, 19 сентября, 00:00:00 1999  
   - последнее изменение: воскресенье, 19 мая, 01:42:16 1996  
   - режим: 0100666  
   - индексный узел/устройство: 0 2  
   образцы fstat/sample.jpg  
   - размер: 4762 байта  
   - владелец: 0 0  
   - создано: вторник, 07 сентября, 22:45:58 1999  
   - последний доступ: Воскресенье, 19 сентября, 00:00:00 1999  
   - последнее изменение: воскресенье, 19 мая, 01:42:16 1996  
   - режим: 0100666  
   - inode/dev: 0 0   

Некоторые поля не имеют смысла на платформах, отличных от Unix; например, ( inode , dev ) кортеж обеспечивает уникальный идентификатор для каждого файла в Unix, но может содержать произвольные данные на других платформах.

Модуль stat содержит ряд полезных констант и вспомогательных функций для работы с с членами статистического кортежа. Некоторые из них показаны в примеры, которые следуют.

Вы можете изменить поля режима и времени, используя chmod и utime работают, как показано в примере 1-33.

Пример 1-33. Использование модуля os для изменения привилегий файла и Временные метки

 Файл: os-example-2.py
импорт ОС
статистика импорта, время
infile = "образцы/образец.jpg"
outfile = "out.jpg"
# скопировать содержимое
fi = открыть (входящий файл, "rb")
fo = открыть (внешний файл, "wb")
пока 1:
    с = fi.read (10000)
    если не с:
        перерыв
    fo.write(s)
fi.close()
fo.close()
# режим копирования и метка времени
st = os.stat (входящий файл)
os.chmod(outfile, stat.S_IMODE(st[stat.ST_MODE]))
os.utime (outfile, (st[stat.ST_ATIME], st[stat.ST_MTIME]))
напечатать "оригинал", "=>"
напечатать «режим», окт (stat.S_IMODE (st [stat. ST_MODE]))
напечатать "atime", time.ctime(st[stat.ST_ATIME])
напечатать "mtime", time.ctime(st[stat.ST_MTIME])
напечатать "копировать", "=>"
st = os.stat(outfile)
напечатать «режим», окт (stat.S_IMODE (st [stat.ST_MODE]))
напечатать "atime", time.ctime(st[stat.ST_ATIME])
напечатать "mtime", time.ctime(st[stat.ST_MTIME])
   оригинал =>  
   режим 0666  
   atime Чт 14 окт 15:15:50 1999  
   mtime Пн 13 ноября 15:42:36 1995  
   копия =>  
   режим 0666  
   atime Чт 14 окт 15:15:50 1999  
   mtime Пн 13 ноя 15:42:36 1995   

Работа с процессами

Функция системы запускает новую команду под текущий процесс и ожидает его завершения, как показано в примере 1.34.

Пример 1–34. Использование модуля os для запуска команды операционной системы

 Файл: os-example-8. py
импорт ОС
если os.name == "nt":
    команда = "каталог"
еще:
    команда = "лс -л"
ОС.система(команда)
   -rwxrw-r-- 1 effbot effbot 76 9 окт 14:17 README  
   -rwxrw-r-- 1 effbot effbot 1727 7 октября 19:00 SimpleAsyncHTTP.py  
   -rwxrw-r-- 1 effbot effbot 314 7 октября 20:29 aifc-example-1.py  
   -rwxrw-r-- 1 effbot effbot 259 7 октября 20:38 anydbm-example-1.py  
   ...   

Команда запускается через стандартную оболочку операционной системы и возвращает статус выхода оболочки. В Windows 95/98 оболочка обычно command.com , чей статус выхода всегда равен 0.

Предупреждение

Поскольку os.system передает команду оболочки как есть, ее использование может быть опасным, если вы не проверите тщательно аргументируйте (рассмотрите возможность запуска os.system("viewer %s" % file) с файловой переменной, установленной на "sample. jpg; rm -rf $HOME" ). Когда не уверен, обычно лучше использовать exec или Вместо порождается (объясняется позже).

Функция exec запускает новый процесс, заменяя текущий («перейти к процессу», другими словами). В Пример 1-35, обратите внимание, что сообщение «до свидания» никогда не печатал.

Пример 1-35. Использование модуля os для запуска нового процесса

 Файл: os-exec-example-1.py
импорт ОС
импорт системы
программа = "Питон"
аргументы = ["hello.py"]
print os.execvp (программа, (программа) + кортеж (аргументы))
печатать "до свидания"
   снова здравствуйте и добро пожаловать на шоу   

Python предоставляет целый набор функций exec , с немного различающимся поведением. Пример 1-35 использует execvp , который ищет программу по стандартный путь, передает содержимое кортежа второго аргумента как отдельные аргументы этой программе и запускает ее с текущим набором переменных окружения. См. Библиотеку Python Ссылка для получения дополнительной информации о других семи способы вызова этой функции.

В Unix вы можете вызывать другие программы из текущей с помощью объединение exec с двумя другими функциями, for и ждут , как показано в примере 1-36. Функция вилки делает копию текущего процесса, а функция wait ожидает дочернего процесса процесс до конца.

Пример 1-36. Использование модуля os для запуска другой программы (Unix)

 Файл: os-exec-example-2.py
импорт ОС
импорт системы
def run(программа, *аргументы):
    pid = os.fork()
    если не пид:
        os.execvp (программа, (программа) + аргументы)
    вернуть os.wait () [0]
запустить ("питон", "hello.py")
печатать "до свидания"
   еще раз привет и добро пожаловать на шоу  
   до свидания   

Вилка возвращает ноль в новом процессе (процесс возврат с вилка это первое что происходит в этом процессе!), и ненулевой идентификатор процесса в исходном процесс. Или другими словами « не pid » верно, только если мы находимся в новом процессе.

Функции fork и wait не доступно в Windows, но вы можете использовать спавн вместо этого используйте функцию, как показано в примере 1-37. К сожалению, стандартной версии нет. порождает , который ищет исполняемый файл вдоль путь, так что вы должны сделать это самостоятельно.

Пример 1-37. Использование модуля os для запуска другой программы (Windows)

 Файл: os-spawn-example-1.py
импорт ОС
строка импорта
def run(программа, *аргументы):
    # найти исполняемый файл
    для пути в string.split(os.environ["PATH"], os.pathsep):
        файл = os.path.join (путь, программа) + «.exe»
        пытаться:
            вернуть os.spawnv (os.P_WAIT, файл, (файл,) + аргументы)
        кроме ос.ошибка:
            проходить
    поднять os.error, «не удается найти исполняемый файл»
запустить ("питон", "hello.py")
печатать "до свидания"
   еще раз привет и добро пожаловать на шоу  
   до свидания   

Вы также можете использовать spawn для запуска других программ в фон. Пример 1-38 добавляет необязательный режим аргумент для запуска функция; при значении os.P_NOWAIT скрипт не ждет завершения работы другой программы. Значение флага по умолчанию os.P_WAIT сообщает порождает , чтобы дождаться завершения нового процесса.

Другие флаги включают os.P_OVERLAY , что делает spawn ведет себя как exec , и os.P_DETACH , который запускает новый процесс в фон, отделенный как от консоли, так и от клавиатуры.

Пример 1-38. Использование модуля os для запуска другой программы в фоновом режиме (Windows)

 Файл: os-spawn-example-2.py
импорт ОС
строка импорта
def run(программа, *args, **kw):
    # найти исполняемый файл
    режим = kw.get("режим", os.P_WAIT)
    для пути в string.split(os.environ["PATH"], os.pathsep):
        файл = os.path.join (путь, программа) + «.exe»
        пытаться:
            вернуть os. spawnv (режим, файл, (файл,) + аргументы)
        кроме ос.ошибка:
            проходить
    поднять os.error, «не удается найти исполняемый файл»
запустить ("python", "hello.py", режим = os.P_NOWAIT)
печатать "до свидания"
   до свидания  
   снова здравствуйте и добро пожаловать на шоу
который работает на любой платформе. 

Пример 1–39. Использование spawn или fork/exec для запуска другой программы

 Файл: os-spawn-example-3.py
импорт ОС
строка импорта
если os.name в ("nt", "dos"):
    исполняемый файл = ".exe"
еще:
    исполняемый файл = ""
def spawn(программа, *args):
    пытаться:
        # возможный ярлык 2.0!
        вернуть os.spawnvp (программа, (программа) + аргументы)
    кроме AttributeError:
        проходить
    пытаться:
        spawnv = os.spawnv
    кроме AttributeError:
        # предположим, что это unix
        pid = os.fork()
        если не пид:
            os.execvp (программа, (программа) + аргументы)
        вернуть os. wait () [0]
    еще:
        # есть spawnv, но нет spawnp: поищите исполняемый файл
        для пути в string.split(os.environ["PATH"], os.pathsep):
            файл = os.path.join (путь, программа) + исполняемый файл
            пытаться:
                вернуть spawnv(os.P_WAIT, файл, (файл,) + аргументы)
            кроме ос.ошибка:
                проходить
        поднять IOError, «не удается найти исполняемый файл»
#
# попробуй!
порождение ("питон", "hello.py")
печатать "до свидания"
   еще раз привет и добро пожаловать на шоу  
   до свидания   

Пример 1.39: первые попытки вызвать функцию с именем spawnvp . Если этого нет (его нет, в 2.0 и ранее), функция ищет функцию с именем spawnv и сам ищет путь. Как в крайнем случае, он возвращается к exec и вилка .

Работа с процессами демона

В Unix вы также можете использовать вилка для поворота текущий процесс в фоновый процесс («демон»). По сути, вам нужно раскошелиться на копию текущего процесса и завершить исходный процесс, как показано в примере 1.40.

Пример 1-40. Использование модуля os для запуска в качестве демона (Unix)

 Файл: os-example-14.py
импорт ОС
время импорта
pid = os.fork()
если пид:
    os._exit(0) # убить оригинал
напечатать "демон запущен"
время сна(10)
напечатать "демон завершен" 

Однако для создания настоящего демона требуется немного больше работы. Сначала позвоните по номеру 9.0615 setpgrp , чтобы сделать новый процесс «руководитель группы процессов». В противном случае сигналы, отправленные на в этот раз) несвязанная группа процессов может вызвать проблемы в вашем демон:

 os.setpgrp() 

Также рекомендуется удалить маску пользовательского режима, чтобы файлы созданный демоном, фактически получает флаги режима, указанные программа:

 os.umask(0) 

Затем вы должны перенаправить файлы stdout/stderr , а не просто закрытие их (если вы этого не сделаете, вы можете получить неожиданные исключения день, когда часть вашего кода попытается что-то написать в консоль через стандартный вывод или стандартный вывод ).

 класс NullDevice:
    Def написать (я, с):
        проходить
sys.stdin.close()
sys.stdout = NullDevice()
sys.stderr = NullDevice() 

Другими словами, в то время как Python печатает , а C printf/fprintf не приведет к сбою вашей программы, если устройства были отключены, sys.stdout.write() с радостью выдает исключение IOError , когда приложение работает как демон. Но ваша программа прекрасно работает, когда бег на переднем плане...

Кстати, функция _exit , использовавшаяся в предыдущем examples завершает текущий процесс. В отличие от sys.exit , это также работает, если вызывающий абонент чтобы перехватить исключение SystemExit , как показано в примере 1-41.

Пример 1-41. Использование модуля os для выхода из текущего процесса

 Файл: os-example-9.py
импорт ОС
импорт системы
пытаться:
 sys.exit(1)
кроме SystemExit, значение:
 напечатать "перехваченный выход (%s)" % значение
пытаться:
 os.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *