Python Forum
Help my software basic(file and def)
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help my software basic(file and def)
#1
Hi brothers!

I made an application to help manage movies.

basically i have 2 problems.

First, whenever I start the program the "database" (films.txt) is re-created.

Second, I can't write a def exc () function, that is, I can't do a function that excludes a movie from the list.

Can you help me?

[inline]#!/usr/bin/env python3
"""Programa para administrar uma lista com os filmes a serem assistidos"""
import os
import sys
import random

# Pega qual é o SO
so = sys.platform
so_clear = ''

# Defini o argumento para limpeza de tela de acordo com o SO
if (so == 'linux'):
    so_clear = 'clear'
elif (so[:3] == 'win'):
    so_clear = 'cls'

# Função lambda para limpeza de tela
if so_clear:
    limpar = lambda l: os.system(l)
else:
    limpar = lambda l: l

def main():
    """Inicializa o programa"""
    
    filmes = open('filmes.txt', 'w')
    filmes.close()

    limpar(so_clear)
    nome = input('Qual é o seu nome? ')
    print('\n Seja bem vindo,', nome)
    print()

    while True:
        print()
        print('Escolha uma das opções abaixo\n')
        print('1 - Ver a lista')
        print('2 - Adicionar filmes na lista')
        print('3 - Excluir filmes da lista')
        print('4 - Selecionar aleatoriamente filme da lista')
        print('0 - Sair\n')

        opcao = input('Entre com o número da opcao: ')
        print()

        if (opcao == '1'):
            ver()
        elif (opcao == '2'):
            adicionar()
        elif (opcao == '3'):
            excluir()
        elif (opcao == '4'):
            randon()
        elif (opcao == '0'):
            sys.exit(0)
        else:
            print('Opcao inválida')
def existe():
    """Verifica se o arquivo filmes.txt existe"""
    if os.path.isfile('filmes.txt'):
        return 'filmes.txt'
    else:
        return ''

def ver():
    """Mostra na tela do terminal 20 itens por vez da lista de filmes"""

    arq = existe()
    if not arq:
        input("O arquivo filmes.txt ainda não foi "
              "criado, tecle enter para continuar")
        return

    limpar(so_clear)
    print("Lista de Filmes:")
    print("(tecle enter para continuar)\n")
    with open(arq, 'r') as arquivo:
        filmes = arquivo.readlines()
        x = 0

        for filme in filmes:
            # Aqui declaramos end como um carcter vazio pois os
            # itens no arquivo já possuem um caracter de nova linha
            print(filme, end='')
            if x > 20:
                x = 0
                input()
            x += 1

def adicionar():
    """Adiciona filmes ao arquivo"""
    filmes = []
    opcao = 'a'
    arq = existe()

    if not arq:
        opcao = 'w'

    limpar(so_clear)
    print("Entre com os filmes digite 0 para sair")
    while True:
        filme = input()
        if filme != '0':
            filmes.append(filme)
        else:
            break

    with open(arq, opcao) as arquivo:
        for filme in filmes:
            # insere um caracter de nova linha até o penultimo item
            arquivo.write("{0}{1}".format(filme, '\n'))

        return
def excluir():
    print('Ainda não implementado')
    print
def randon():
    filmes = open('filmes.txt', 'r')
    FILMES = filmes.readlines() # readlines
    filmes.close()
    filme = random.choice(FILMES)
    print(filme, ", Bom filme! ")
    return

main()[/inline]
Reply
#2
if you want to add 'append' to the file open with mode 'a'
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020