Готовый перевод Learn Python The Hard Way / Трудный Путь Изучения Python: Exercise 17: More Files
Упражнение 17: Ещё файлы
Сейчас давайте сделаем еще несколько трюков с файлами. На самом деле мы всего лишь напишем скрипт на Pyton для копирования одного файла в другой, это не сложно. Но это даст Вам несколько идей для дальнейшей работы с файлами.
from sys import argv
from os.path import exists
script, from_file, to_file = argv
print "Copying from %s to %s" % (from_file, to_file)
# Вместо двух строк тут можно написать одну. Как?
in_file = open(from_file)
indata = in_file.read()
print "The input file is %d bytes long" % len(indata)
print "Does the output file exist? %r" % exists(to_file)
print "Ready, hit RETURN to continue, CTRL-C to abort."
raw_input()
out_file = open(to_file, 'w')
out_file.write(indata)
print "Alright, all done."
out_file.close()
in_file.close()
Вы заметили, что мы импортировали другую полезную команду - exists. Она возвращает True, если файл, имя которого передали в параметре, существует и False в противном случае. Мы будем часто использовать эту функцию во второй части книги, но здесь вы увидели, как её можно импортировать.
Использование конструкции import позволяет вам получить огромное количество готового свободного кода от лучших (как правило) программистов.
Что вы увидите после запуска
Как и прежние ваши скрипты, запускайте этот скрипт с двумя аргументами: файлом, который надо копировать, и файлом, в который надо копировать.
Я снова собираюсь использовать простой тестовый файл, который называется test.txt
$ cat test.txt
This is a test file.
$
$ python ex17.py test.txt new_file.txt
Copying from test.txt to new_file.txt
The input file is 21 bytes long
Does the output file exist? False
Ready, hit RETURN to continue, CTRL-C to abort.
Отлично, все работает.
Попробуйте запустить это на разных файлах, посмотрите что будет происходить. Будьте осторожны, не повредите важные файлы.
Предупреждение
Вы видели как с помощью команды cat я вывел содержимое файла? Подробнее об этом Вы можете узнать в приложении А.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/35742/176299
Переводчики: t0pep0, lantern, zbob, Gukoff
Настройки
Готово:
