Linux. От новичка к профессионалу. — 6-е изд

Linux. От новичка к профессионалу. — 6-е изд

Linux. От новичка к профессионалу. - 6-е изд

Книга: Linux. От новичка к профессионалу. — 6-е изд. Даны ответы на все вопросы, возникающие при работе с Linux: от установки и настройки этой ОС до настройки сервера на базе Linux. Материал книги максимально охватывает все сферы применения Linux от запуска Windows-игр под управлением Linux до настройки собственного Web-сервера. Также рассмотрены: вход в систему, работа с файловой системой, использование графического интерфейса, установка программного обеспечения, настройка сети и Интернета, работа в Интернете, средства безопасности, резервное копирование, защита от вирусов и другие вопросы. Материал ориентирован на последние версии дистрибутивов Fedora, openSUSE, Slackware, Ubuntu.

В шестом издании описаны виртуальные частные сети, виртуальные серверы, настройка VPN-соединения и VPN-сервера, выбор VPN-провайдера, системы виртуализации OpenVZ и Virtuozzo, программные системы хранения данных с резервированием.

Скачать с mail облака

2021-11-09T22:50:21Книги и Курсы

Как использовать средство записи csv на Python

В этой статье мы увидим, как мы можем использовать средства записи csv на python для записи данных списка в csv.

 

1. Метод: Python записывает список в CSV

В первом методе мы запишем список в файл CSV с помощью csv.writer().

    import csv

Details = ['Name', 'class', 'Year', 'Subject','Grade']

rows = [ ['Andrey', '2nd', '2020', 'Physics','A'],

['Max', '3rd', '2022', 'Chemistry','B'],

['Alex', '4th', '2021', 'Math','A']]

with open('studentData.csv', 'w') as f:

write = csv.writer(f)

write.writerow(Details)

write.writerows(rows)

 

Вывод:

Name,class,Year,Subject,Grade

Andrey,2nd,2020,Physics,A

Max,3rd,2022,Chemistry,B

Alex,4th,2021,Math,A

 

Строка 1 : Импортируем модуль CSV.

Строка 2–3: мы создали два списка деталей и строк. Список деталей будет представлять имена столбцов, а списки строк будут представлять данные каждого столбца.

Строки с 6 по 9 : Мы открываем файл studentData.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект write с помощью csv.writer(f). Сначала мы записываем имена столбцов csv, используя список деталей. После записи имен столбцов csv мы используем write.writerows() и передаем им список строк в качестве параметра для записи каждого из списков в виде строки.

 

2. Метод: Python записывает список в строку CSV

В этом методе мы собираемся записать строку CSV с помощью csv.writer(). Программа подробно описывает, как использовать этот метод для записи строк CSV, приведенных ниже:

    import csv

data = [['a'], ['b'], ['c'],['d']]

file = open('alphabet.csv', 'w+',newline ='')

with file:

write = csv.writer(file)

write.writerows(data)

 

Вывод:

a

b

c

d

 

Строка 1 : Импортируем модуль CSV.

Строка 2 : Мы создали один список данных, элементы которого также являются списком. Каждый подсписок будет рассматриваться как отдельная строка.

Строки с 3 по 6 : Мы открываем файл алфавит.csv как режим записи (‘w’) для записи файла. Мы также используем атрибут новой строки, который помогает поместить значение в новую строку. Теперь мы создали объект для записи, используя csv.writer (file). Чтобы записать каждый из списков в виде строки, мы используем write.writerows() и передаем в них список данных в качестве параметра.

Из вывода мы видим, что все подсписки были записаны как новая строка.

 

3. Метод: Python записывает список в заголовок CSV.

В этом методе мы собираемся написать заголовок файла CSV.

    import csv

list = [[ 'New York', 'USA','A'],['Moscow', 'RUSSIA', 'A'],['Bejing','CHINA','B']]

with open('header.csv','w') as f:

writer = csv.writer(f)

writer.writerow(['City', 'Country', 'Rank'])

writer.writerows(list)

 

Вывод:

City,Country,Rank

 

Строка 1 : Импортируем модуль CSV.

Строка 2–3 : мы создали один список данных, в котором элементы также являются списком. Каждый подсписок будет рассматриваться как отдельная строка.

Строки с 4 по 7 : Мы открываем файл rank.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Сначала мы записываем имена столбцов CSV с помощью Writerow([‘City’, ‘Country’, ‘Rank’]).

Вывод показывает, что мы успешно написали заголовок файла csv.

 

4. Метод: Python записывает элементы кортежа списка в CSV

Этот метод покажет, как мы можем записать тип кортежа элементов внутри списка в csv.

    import csv

items = [(('A', 'Alex'), 31), (('B', 'Boris'), 28), (('C', 'Cara'), 25)]

with open('tuple.csv', 'w') as f:

write = csv.writer(f)

write.writerows(items)

 

Вывод:

"('A', 'Alex')",31

"('B', 'Boris')",28

"('C', 'Cara')",25

 

Строка 1 : Импортируем модуль CSV.

Строка 2 : Мы создали список элементов, каждый элемент которого является кортежем.

Строка 3–5 : мы открываем файл tuple.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Чтобы записать каждый из элементов списка (кортежа) в виде строки, мы используем write.writerows() и передаем им список элементов в качестве параметра.

 

5. Метод: Python добавляет список в CSV

Этот метод покажет, как мы можем добавить любые новые данные в CSV с помощью Python Writer.

    import csv

with open('result.csv','a') as f:

writer = csv.writer(f)

writer.writerow(['city','New York'])

 

Вывод:

"('A', 'Alex')",31

"('B', 'Boris')",28

"('C', 'Cara')",25

city,New York

 

Строка 1 : Импортируем модуль CSV.

Строка 2 : мы открываем файл result.csv в режиме добавления, потому что мы хотим добавить еще несколько данных в существующий файл csv.

Строка 3–4 : Теперь мы создали объект для записи с помощью csv.writer(f). Чтобы записать каждый из элементов списка в виде строки, мы используем write.writerows() и передаем им список элементов в качестве параметра. Но поскольку теперь у нас есть только один список, мы будем использовать только метод writerow().

Из вывода мы видим, что мы успешно добавляем новые данные в существующий файл csv.

 

6. Метод: Python добавляет список в CSV

    import csv

from itertools import zip_longest

item_1 = ['A', 'B', 'C', 'D']

item_2 = [1,2,3,4]

data = [item_1, item_2]

export_data = zip_longest(*data, fillvalue = '')

with open('item_zip.csv', 'w', encoding="ISO-8859-1", newline='') as file:

write = csv.writer(file)

write.writerow(("item_1", "item_2"))

write.writerows(export_data)

 

Вывод:

item_1,item_2

A,1

B,2

C,3

D,4

 

Строка 1 и 2 : мы импортируем модуль CSV и файл zip_longest. Этот модуль используется для итерации в порядке следования.

Строка 3–5 : мы создали два списка item_1 и item_2 для итерации данных. Затем мы объединяем оба списка в один и называем этот список данными.

Строка 6 : Затем мы вызываем метод zip_longest для параллельного перебора двух списков.

Строки с 7 по 10 : Мы открываем файл item_zip.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Сначала мы записываем имена столбца csv, а после записи этого, чтобы записать каждый из списков в виде строки, мы используем write.writerows() и передаем им список строк (export_data) в качестве параметра.

Вывод показывает, что мы успешно записали наши zip-данные в файл csv.

 

7. Метод: напишите CSV-файл с пользовательским разделителем каналов.

В этом методе мы будем использовать разделитель вертикальной черты (‘|’) вместо запятой. В приведенной ниже программе объясняется, как мы можем использовать разделитель вертикальной черты в нашем коде.

    import csv

Details = ['Name', 'class', 'Year', 'Subject','Grade']

rows = [ ['Andrey', '2nd', '2020', 'Physics','A'],

['Max', '3rd', '2022', 'Chemistry','B'],

['Alex', '4th', '2021', 'Math','A']]

with open('pipe_delimiter.csv', 'w') as f:

write = csv.writer(f,delimiter='|')

write.writerow(Details)

write.writerows(rows)

 

Вывод:

Name|class|Year|Subject|Grade

Andrey|2nd|2020|Physics|A

Max|3rd|2022|Chemistry|B

Alex|4th|2021|Math|A

 

Строка 1 : Импортируем модуль CSV.

Строка 2–3 : мы создали два списка деталей и строк. Список деталей будет представлять имена столбцов, а списки строк будут представлять данные каждого столбца.

Строки с 6 по 9 : Мы открываем файл studentData.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Мы также добавляем один дополнительный разделитель атрибутов в метод csv.writer() вместе с f. Сначала мы записываем имена столбцов csv, используя список деталей. После этого мы используем write.writerows() и передаем список строк в качестве параметра для записи каждого из списков в виде строки.

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

 

8. Метод: напишите CSV-файл с пользовательским символом кавычек.

В этом методе мы будем использовать некоторые пользовательские символы кавычек при сохранении данных в формате csv. Для этого мы должны использовать атрибут quoting = csv.QUOTE_NONNUMERIC и quotechar, как показано в приведенной ниже программе.

    import csv

Details = ['Name', 'class', 'Year', 'Subject','Grade']

rows = [ ['Andrey', '2nd', '2020', 'Physics','A'],

['Max', '3rd', '2022', 'Chemistry','B'],

['Alex', '4th', '2021', 'Math','A']]

with open('quote.csv', 'w') as f:

write = csv.writer(f,quoting=csv.QUOTE_NONNUMERIC,

delimiter=';', quotechar='*')

write.writerow(Details)

write.writerows(rows)

 

Вывод:

*Name*;*class*;*Year*;*Subject*;*Grade*

*Andrey*;*2nd*;*2020*;*Physics*;*A*

*Max*;*3rd*;*2022*;*Chemistry*;*B*

*Alex*;*4th*;*2021*;*Math*;*A*

 

Строка 1 : Импортируем модуль CSV.

Строка 2–3 : мы создали два списка деталей и строк. Список деталей будет представлять имена столбцов, а списки строк будут представлять данные каждого столбца.

Строки с 6 по 9 : Мы открываем файл studentData.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Мы также добавляем один дополнительный атрибут quiting и quotechar в метод csv.writer() вместе с f. Сначала мы записываем имена столбцов csv, используя список деталей. После этого мы используем write.writerows() и передаем список строк в качестве параметра для записи каждого из списков в виде строки.

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

 

9. Метод: запишите CSV-файл с помощью csv.DictWriter().

Мы также можем записать CSV-файл с помощью метода DictWriter(). Итак, в этой программе мы увидим, как мы можем использовать метод DictWriter() для записи файла csv.

    import csv



with open('dictwriter.csv', 'w', newline='') as file:

fieldnames = ['A', 'B']

writer = csv.DictWriter(file, fieldnames=fieldnames)



writer.writeheader()

writer.writerow({'A': 'Magnus Carlsen', 'B': 28770})

writer.writerow({'A': 'Fabiano Caruana', 'B': 28222})

writer.writerow({'A': 'Ding Liren', 'B': 28001})




 

Вывод:

A,B

Magnus Carlsen,28770

Fabiano Caruana,28222

Ding Liren,28001

 

Строка 1 : Импортируем модуль csv.

Строка 3 : Открываем файл dictwriter.csv в режиме записи.

Строки 4 и 5 : в этом методе dictwriter() мы должны определить ключи в списке и передать их при создании объекта записи, как показано в строке номер 5. Имена полей находятся в той же последовательности, в которой мы хотим записать csv. файл.

Строки с 8 по 10 : мы передаем все данные в Writerow в форме dict (ключ и значение).

 

Заключение:

В этой статье мы рассмотрели различные способы использования методов csv.writerow(). Мы видели, как можно записать весь список в CSV. Мы также видели, как мы можем записывать кортежи внутри списка в csv. Затем мы познакомились с некоторыми интересными методами, такими как настраиваемый разделитель csv.



2021-11-09T17:19:16
Python

Значок аккумулятора на панели задач Windows 11 показывает, что уровень заряда превышает 100 процентов

О каждой новой версии Windows говорят, что она быстрее и эффективнее; некоторые даже утверждают, что обеспечивают оптимизацию, означающую, что аккумулятор вашего ноутбука прослужит дольше, чем когда-либо. Однако странная проблема, о которой в настоящее время говорят на Reddit, определенно звучит как ошибка, а не функция — поскольку Redditors сообщают (обнаружено через BetaNews), значок батареи на панели задач Windows 11 показывает уровень заряда, превышающий обычный предел в 100 процентов.

На выходных Redditor опубликовал снимок экрана со значком уровня заряда батареи, в котором сообщается, что ячейки заряжены на 103%. Позже «Zondax» обновил пост, сообщив, что он достиг 104 процентов. Реакция была смесью веселья, некоторых шутливых комментариев о стартовых/домашних/профессиональных версиях Windows, но основное чувство заключалось в том, что здесь может быть небольшая опасность. Если нет сообщения об ошибке, что-то может быть не так с электроникой питания системной батареи, и все мы знаем об опасности.

В воскресенье другой редактор Reddit, «GlitchyDragon65», поделился еще более удивительным снимком экрана. Их ноутбук с Windows 11, по-видимому, зарядил аккумулятор до 115 процентов и с гордостью выскочил предупреждение: «Аккумулятор 1: полностью заряжен на 115%». Прокручивая комментарии, вы можете увидеть, как кто-то еще говорит, что его аккумулятор не был полностью заряжен, пока не достиг 126 процентов…

Значок аккумулятора на панели задач Windows 11 показывает, что уровень заряда превышает 100 процентов

 

Обоим вышеупомянутым участникам Reddit в комментариях ответила член команды разработчиков Microsoft Windows Джен Джентльман. Джентльмен упомянул, что она видела несколько отчетов об этом странном поведении значка уровня заряда батареи в сборках канала разработчиков Windows 11. Затем она заверила насмешливых пользователей Reddit в том, что «мы изучаем это, было несколько отчетов о последних сборках каналов разработчиков», прежде чем побудить всех, кто видит такое поведение, сообщить об этом в центре отзывов Windows.

В твиттере на статью BetaNews по этой теме член инженерной группы Microsoft, Anuneet, заявил, что в настоящее время изучается ошибка, и Microsoft «исправит ее как можно скорее».



2021-11-09T16:02:52
Microsoft

10 фактов о жутких ползучих животных, которые пощекочут вашу забавную кость

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

Возможно, мы еще не научились ценить их важность для природы и для нас. Насекомые – это сборщики мусора на Земле, которые убирают грязь, такую ​​как навоз и трупы. Взамен они обитают в наших домах, чтобы получить пищу, тепло и кров. Итак, в качестве подтверждения их роли в природе, вот 10 фактов, которые заставят вас визуализировать насекомых забавным образом:

№1. Техника ароматического спаривания

Щупальца самца лунного мотылька (орган, похожий на антенну) длинные и перистые. Он использует их, чтобы нюхать самок бабочек за много километров!

Лунная бабочка – это зеленая лаймовая бабочка неарктических сатурниид, принадлежащая к семейству Saturniidae. Это один из самых крупных видов бабочек, обитающих в Северной Америке. У него есть феномен (это химическое вещество, выделяемое животными) брачная система. Детерминированные и не сдерживаемые препятствиями, самцы бабочек будут упорно следовать запаху, оставленному самками (все самцы одинаковы!). Поскольку лунный мотылек ведет ночной образ жизни, спаривание происходит только при отсутствии дневного света.

№2. Слушать ногами


Да, есть насекомые, которые слышат что-то ногами! У длиннорогого кузнечика на обеих передних лапах есть уши (уши, конечно, не похожи на наши). Это крошечные дырочки с натянутой сверху кожей, немного похожие на миниатюрные барабаны. Эти тонкие мембраны вибрируют даже при малейшем звуке.

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

№3. Даже насекомые проявляют материнскую любовь



Самым поразительным фактом об уховертке-самке является то, что она проявляет родительский инстинкт – черта, практически неслыханная в мире насекомых. Как и все матери (по крайней мере, человеческие), мать-уховертка проводит всю зиму, ухаживая за своими яйцами. Она слизывает их чистыми и сохраняет тепло.

Когда они вылупляются, она кормит их пищей, принесенной из ее желудка (не кажется слишком аппетитной!). Нимфы уховертки линяют примерно пять раз, прежде чем достигают взрослых размеров. Мать заботится о своих детях до их второй линьки.

№4. Насекомые с доспехами



(Нет, он сделан не из валирийской стали) У жуков две пары крыльев, но для полета они используют только одну пару. Единственные функциональные крылья – это задние крылья. Передняя пара, называемая надкрыльями, жесткая и не используется для полета. Он действует как толстая броня, прикрывая нежные крылья и мягкое тело жука.

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

№5. Грабить мертвых



Жуки-закопатели не уважают мертвых! Самцы испускают феромоны (сексуальные аттрактанты), чтобы привлечь самок. Они соревнуются между собой за тушу, причем размер определяет, кто претендует на приз (несправедливо? Ну, они так не думают). Когда они находят мертвое животное, они выкапывают землю, пока тело не погрузится в землю. Затем они откладывают яйца внутрь тела и засыпают его землей. Когда яйца вылупляются, они питаются мертвыми (их ждет мясной магазин с большим запасом мяса!).

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

№6. Стрельба по врагам

img источник NBC News

Остерегайтесь жука-бомбардира! Как следует из названия, жук-бомбардир стреляет в своих врагов струей горячей, жалящей жидкости. Во время выстрела реактивный двигатель издает резкий треск, как будто выстреливает крошечный пистолет (бум!).

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

№7. Кузнечики, играющие на скрипке

источник img flickr.com

Луговой кузнечик играет своим телом, как на скрипке. Звук получается от трения внутренней поверхности задней ноги о края переднего крыла. Задняя нога действует как лук, а переднее крыло действует как натянутая струна, издающая громкий щебечущий звук. В теплый летний день у нас в саду может быть целый оркестр!

Луговый кузнечик или научно известный Chorthippus parallelus – распространенный вид кузнечиков, обитающих в хорошо засаженных растительностью районах Европы и некоторых частях Азии. Это член группы косолицых кузнечиков, в которой обитает ряд стридулятивных видов.

№8. Пчелы несут щетку и расческу!

источник img nationalgeographic.com

У медоносных пчел маленькие корзинки на задних лапах и кисточки из шерсти на других ногах. Когда пчела садится на цветок, она смахивает пыльцу в свои корзины. Затем он летит обратно в улей, чтобы скормить пыльцу своим детенышам. У пчел есть не только щеточка, но и гребешок! Он присутствует на их передних лапах, и они используют его для чистки своих щупалец.

Сбор нектара для изготовления меда – тяжелая работа. Они могут собрать пыльцу с 500 цветов за одну поездку. Научные исследования показали, что для наполнения одной банки меда требуется примерно 22 700 пчел!

№9. Кемпинг в палатке

img source canadianmuseumofnature

Муравьи-ткачи сшивают листья вместе, чтобы сделать себе палатки, а своих личинок они используют как иголки и нитки! Эти гнезда являются одними из самых сложных муравейников. Чтобы создать свои гнезда, муравьи стягивают края вместе, укорачивая цепочку. Когда края встали на свои места, каждый муравей держит во рту молодую личинку и протыкает ее через края двух листьев. Личинка делает шелковистую нить, которая прочно сшивает два листа (доказывает ценность командной работы!).

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

№10. У комаров больше зубов, чем у людей



Это не совсем зубы, но у них 47 острых краев на кончике хоботка, которые помогают прорезать кожу. Хоботок устроен как полая игла, прикрепленная ко рту. С помощью этих игл комары могут прокалывать нашу кожу и извлекать из нее кровь (как из соломинки!).

Однако, в отличие от человеческих зубов, эти острые края не используются для разрушения пищи, поскольку их пища – кровь уже находится в жидкой форме. Следовательно, боль, которую мы испытываем после «укуса» комара, возникает не из-за того, что он сосет кровь, а из-за того, что в нас пронзает хоботок. Укусы комаров могут быть очень опасными. Это может вызвать опасное заболевание под названием малярия. Ежегодно более 200 миллионов человек заражаются малярией и более миллиона умирают от нее.

Written By: Debjyoti Samanta

Источник записи: wonderslist.com



2021-11-08T13:30:00
Животные

Игровой движок. Программирование и внутреннее устройство

Игровой движок. Программирование и внутреннее устройство

Книга: Игровой движок. Программирование и внутреннее устройство. Игровое программирование — сложная и огромная тема, охватывающая множество вопросов. Граница между игровым движком и игрой размыта. В этой книге основное внимание уделено движку, основным низкоуровневым системам, системам разрешения коллизий, симуляции физики, анимации персонажей, аудио, а также базовому слою геймплея, включающему объектную модель игры, редактор мира, системы событий и скриптинга.

Скачать с mail облака

2021-11-08T13:29:35Книги и Курсы

Как архивировать файлы и папки в Linux

Как архивировать файлы и папки в Linux

Zip — один из самых популярных форматов архивных файлов. С помощью zip можно сжать несколько файлов в один файл. Это не только экономит место на диске, но и пропускную способность сети. Вот почему вы почти всегда встречаете файлы zip.

Как обычный пользователь, вы чаще всего распаковываете файлы в Linux. Но как в Linux сделать архив из папки? Эта статья поможет вам ответить на этот вопрос. Читать