-18

Замена заполнению нулями dd

Знали ли вы или нет, но новый,чистый ни чем ни забитый архив в котором вы заранее указали размер или вообще любой пустой файл это просто набор нулей,число которых эквивалентно числу в байтах(размер файла).

Ну так вот,на Python3 можно создать постоянную замену(возможно не пригодится),но только файл от dd все-таки заполняется некоторыми символами(конфигурации).

Ну так вот:

import os

#Ввод имени файла
print("Введите имя файла")
name = str(input())
#Путь до файла
path = str(os.getcwd()) + "/" + name
#Ввод кол-ва нулей
print("Введите кол-во нулей")
null = int(input())
file = open(path, "w", encoding = " utf-8")

i = 0
while i < null:
print(i)
i = i + 1
file.write("0")

Дубликаты не найдены

Программирование на python

171 пост6.2K подписчик

Добавить пост

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

Подробнее
+5

Попробую дать фидбек:
1. Нельзя использовать интерфейс пикабу для нормального кода, т.к. теряется форматирование, да и подсветки нет
2. Цикл while в таком виде не идиоматичен, следует использовать for _ in range(100)
3. Запись по одному символу крайне неэффективна с учётом блочной природы файлов и низкой скорости интерпретации
4. Запись в текстовом формате для бинарного по своей сути файла неидиоматична

5. Преобразование пути в абсолютный лишнее и может быть даже вредным. Следует использовать open с относительным путём

6. Использование / как разделителя элементов пути приведёт к ошибкам на других платформах. Следует использовать os.path.join

7. Использование явного input в такой программе -- зло, от этого наоборот по возможности отказываются, следует использовать аргументы командной строки

раскрыть ветку 10
+1
Нет, нужно использовать pathlib.Path, а os.path более не трогать.
раскрыть ветку 3
0

3 - скорее всего пофиг, все равно сначала в кэш пишется, потом из него блоками сбрасывается на устройство.

раскрыть ветку 2
0
Ну и если автор хочет просто пустой файл, то можно сделать проще.
Открыть, переместиться в desired_len-1, write(b"\0").
-2
А так можно и for
-3
Ну цикл while более универсален,и он мне нравится
+3

Вроде бы ты открыл файл на запись в текстовом виде, что означает, что записываться будут символы. Ты записываешь "0". Это, на всякий случай, не нулевой байт. Если хочешь чистые нули в битовом представлении, то записывай "\0"

А зачем тебе это?)

раскрыть ветку 7
+5
А зачем тебе это?)

Больше интересует, зачем нам это?

+2
Просто)
0
(
0
Да просто первый пост написал
0
Репутация -15
раскрыть ветку 2
+1
Сейчас даже баш закашлялся
раскрыть ветку 1
-2
)
0
В продолжение топового комментария: а еще не выводи "введите число" функцией print. Если уж очень хочешь юзать input(), то у него есть необязательный аргумент типа str, который выводится на экран при исполнении. Т.е. можно
var = int(input("Enter a number"))

А еще переменная, обозванная null, для важного значения при исполнении программы, - не труъ. Лучше хотя бы lenght.
раскрыть ветку 1
+1
Я знаю)
0

Весь этот гениальный скрипт сводится к одной команде баша для вывода заданного числа нолей (строковых, не 0-байт)

printf '0%.0s' {1..100} > /path/to/file

Первый 0 может быть заменен на любой hex символ (\x30)

раскрыть ветку 2
0

Весь этот гениальный скрипт сводится к использованию dd

раскрыть ветку 1
Похожие посты
5112

Список бесплатных курсов, чтобы стать python-разработчиком (по направлениям)

Список бесплатных курсов, чтобы стать python-разработчиком (по направлениям) Python, Бесплатное образование, Курсы программирования, Программирование
47

От продавца до Big Data Scientist #13

От продавца до Big Data Scientist #13 Мечта, Будущее, IT, Текст, Программирование, Python, Длиннопост
Показать полностью 1
3647

Kaspersky решил удалить python из wsl

Kaspersky решил удалить python из wsl Python, Kaspersky Internet Security, Fail, Программирование, Windows 10
60

Новый тест TelegramTV бота

Новый тест TelegramTV бота Телевидение, Бот, Программирование, Программист, Python, Telegram, Telegram бот
63

День рождения Powershell

День рождения Powershell Powershell, Программирование, Cmd, Командная строка, Системное администрирование, Администрирование, Windows, Linux
Показать полностью
2070

Проект Python для соблюдения политкорректности избавляется от терминов "master" и "slave"

Проект Python для соблюдения политкорректности избавляется от терминов "master" и "slave" Linux, Python, IT, Текст, Политкорректность
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: