pySuporte - Script para controle de chamados armazena num txt.
Publicado por Murilo R. Esplugues 24/02/2005
[ Hits: 9.009 ]
Homepage: http://www.helpday.blogspot.com/
Criei esse script a alguns meses para fazer o controle dos chamados na empresa onde trabalho. Com ele você pode inserir, procurar por data, e exibir todos os registros. Ele guarda os em um arquivo de texto que pode por exemplo ser facilmente importado pelo OpenOffice Calc ou MsExcel.
<pre>
#!/usr/bin/env python
# Autor: Murilo R. Esplugues
# Data: 23/02/2005
# Nome do arquivo: suporte.py
# Descricao do programa: Inclusao/Consulta de chamados grava em chamados.txt
# Python Vrs: Python 2.4.* - e vrs anteriores
# Contato: murilo_esplugues@yahoo.com.br
# Categorias: Script - Python - ModoTexto
# uso: apenas execute o arquivo.
# -*- coding: iso8859-1 -*-
import time
file = 'chamados.txt'
def Incluir():
"""
Utilizado para incluir cadastros no arquivo
"""
# Dados para inclusao
data = raw_input('Data (MM/DD/AA) (Pressione "d" para hoje) :')
if data == 'd':
# Captura o dia, mes e ano do relogio do computador
data = time.strftime('%x')
nome = raw_input('Nome: ')
setor = raw_input('Setor: ')
if setor == '':
setor = 'xxxx'
ramal = raw_input('Ramal: ')
if ramal == '':
ramal = 'xxxx'
chamado = raw_input('Chamado: ')
# Nome e chamado nao podem ser em branco
if nome == '' or chamado == '':
print 'Esse dado e obrigatorio'
incluir()
# Abrir e adicionar chamado, caso nao existe cria
try:
bd = open(file, 'a')
except IOError:
print "Nao e possivel abrir '%s'" % file
else:
inserir = (data + '\t' + nome + '\t' + setor + '\t' + ramal + '\t' + chamado)
# Inserindo dados ao bd ( um chamado por linha)
bd.write(inserir + '\n')
bd.close
def Status():
"""
Retorna registros seu tamanho e quantidade
"""
print '\n' * 100
# Abrindo arquivo como somente leitura (r)
bd = open(file, 'r')
data = raw_input('Data em que chamado foi aberto (MM/DD/AA): ')
registro = bd.readlines()
registro.sort()
if data <> '':
for linha in registro:
if data in linha:
print linha
else:
count = 0
count2 = 0
linhas = 30
print 'Registros: '
for x in registro:
if count <= linhas:
print count2, x,
count = count + 1
count2 = count2 + 1
else:
more = raw_input('Mais? (s/n): ')
if more in ['s','S']:
count = 0
elif more in ['n','N']:
break
else:
print 'Opcao nao encontrada!'
time.sleep(1)
print
print '--------------------------------------'
print 'Voce possui', count2, 'registros!'
print '--------------------------------------'
print
bd.close
def Principal():
"""
Loop Infinito executando o Menu Principal
"""
opcao = None
while 1:
opcao = raw_input('''
****************************
*** Controle de Chamados ***
****************************
[i-I] - Incluir
[l-L] - Listar
[s-S] - Sair
Escolha uma opcao: ''')
if opcao in ['i','I']:
Incluir()
elif opcao in ['l','L']:
Status()
elif opcao in ['s','S']:
break
if __name__ == '__main__':
Principal()
</pre>
Serialização em Python usando pickle
Converte valor de Bytes 2 Kbyte 2 Mbyte
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
O widget do Plasma 6 Área de Notificação
[Resolvido] Algo deu errado ao abrir seu perfil
Quando vocês pararam de testar distros? (14)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









