Форум сайта python.su
Доброго времени суток. Изучаю второй день пайтон, программистского опыта вообще нет, пытаюсь написать первую простенькую программу для считывания/копирования/рерайта файлов.
print('Команды для работы с txt файлами: ') print('/read - прочитать файл.') print('/create - создать файл.') print('/copy - копировать файл.') print('/add - добавить текст в файл') print('/end - завершить программу') command = str(input('Введите команду: ')) #read if command = /read: filename = input('Укажите файл (формат должен содержать имя.разрешение, например text.txt) :') file = open( filename, 'r') print(file.read()) file.close() #create filename2 = input('Введите желаемое имя файла (с указанием формата .txt): ') text = input('Какой текст хотите поместить в файл? :') file2 = open( filename2, 'w') file2.write(text) file2.close() #copy filename3 = input('Введите название копируемого файла?: ') filename4 = input('Введите имя нового файла ') file3 = open(filename3,'r') file4 = open(filename4, 'w') file4.write(file3.read()) file3.close() file4.close() print('Копирование успешно завершено!') #r - режим чтения # w - режим перезаписи # a - добавление в файл
Отредактировано TrustInMe (Май 14, 2017 14:15:54)
Офлайн
>>> def f(): ... command = input('Ввведите команду: ') ... if command == '/read': ... print('Команда /read') ... elif command == '/create': ... print('Команда /create') ... else: ... print('Команда unknown') ... >>> f() Ввведите команду: /create Команда /create >>> f() Ввведите команду: /read Команда /read >>> f() Ввведите команду: /x Команда unknown >>>
TrustInMeВозьми какую-нибудь книжку и прочитай её. Методом тыка в программировании что-то изучать - лишняя и бесполезная трата времени.
Правильно ли я понял, что if принимает только булеан значения?
Как грамотно можно реализовать идею?
Отредактировано py.user.next (Май 14, 2017 15:27:58)
Офлайн
второй день нужно уже функции и циклы изучать и тогда программа получиться.
как вариант на скорую руку
def separator(x): if x == 'read': read_()# если код условия короткий то можно и так оформить elif x == 'create': create_('w') elif x == 'copy': copy_() elif x == 'add' : create_('a') elif x == 'end' : print('программа завершина') else: print('нет такой команды !!!') def read_(): filename = '{}.{}'.format(input('Укажите имя файла :'),'txt') with open(filename) as inp: print(inp.read()) # так как создание файла и дозапись в файл отличаются только параметрами открытия файла # то используем одну функцию с разными параметрами def create_(x): filename = '{}.{}'.format(input('Укажите имя файла :'),'txt') text = input('Какой текст хотите поместить в файл? :') with open(filename,x) as out: out.write(text) if x == 'w': print('создан файл',filename) else: print('дописан файл',filename) def copy_(): filename = '{}.{}'.format( input('Введите название копируемого файла?: '),'txt') nev_filename ='{}.{}'.format( input('Введите имя нового файла '),'txt') with open(filename) as inp, open(nev_filename,'w') as out: out.write(inp.read()) print('Копирование успешно завершено!') print('Команды для работы с txt файлами: ') command = ('read - прочитать файл.','create - создать файл.', 'copy - копировать файл.','add - добавить текст в файл', 'end - завершить программу') for i in command : print(i) control = 'ok' while control != 'end' : control = input('Введите команду: ') separator(control)
Отредактировано marvellik (Май 17, 2017 16:27:04)
Офлайн