manter arquivos gerados no script em uma pasta para poder checa-los ao rodar novamente o script! [RE

1. manter arquivos gerados no script em uma pasta para poder checa-los ao rodar novamente o script! [RE

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 17/08/2017 - 05:48h

Bom, é o seguinte:

tenho um código para gerenciar alguns produtos, vendas etc. Ao cadastrar o produto necessito que seja salvo em alguma pasta ou em arquivo .txt que dê pra ser utilizado toda vez que o script for usado.

Tenho tentado com o open(filename,'w') mas o arquivo retorna vazio. O jeito que estou conseguindo é apenas usar o append para exibir a lista de "cadastros", mas como mencionei, os cadastros devem ser 'puxados' toda vez que o script rodar.

Alguém tem uma luz?

caso necessite posto o código, tá meio bagunçado agora. Tenho que dar um clean nele


  


2. Re: manter arquivos gerados no script em uma pasta para poder checa-los ao rodar novamente o script!

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 17/08/2017 - 13:05h

Pesquise pelo termo "persistence". Posso também te indicar o shelve. Tenho um exemplo prático aqui:

Crie uma classe para representar o produto:

class Product(object):
def __init__(self, name, category, value):

self.category = category
self.value = value
self.id = uuid4()
self.name = name

def __str__(self):
return self.name


Depois use o shelve para cria um banco de dados:
class Database(object):
def __init__(self):
self.check_database()

@staticmethod
def list_categories():
with shelve.open(DATABASE_NAME) as database:
for key in database.keys():
print(key)
return True

@staticmethod
def list_items(category=None):
if category is None:
with shelve.open(DATABASE_NAME) as database:
for category in database:
print("--- {} ---".format(category))

for item in database[category]:
product = database[category][item]
print("Id: ", product.id)
print("Name:", product.name)
print("Value:", product.value)
print("-------")


@staticmethod
def insert(product):
with shelve.open(DATABASE_NAME, writeback=True) as database:
if product.category not in database.keys():
database[product.category] = dict()
db_category = database.get(product.category)
db_category[product.id] = product
return True

@staticmethod
def check_database():
if not os.path.exists(DATABASE_NAME + '.db'):
shelve.open(DATABASE_NAME)
return True



Já possui alguns métodos que eu criei mas é só um exemplo... para inserir um item:
    database = Database()
item = Product(name="Sapato", category="Vestuário", value=100)
database.insert(item)


Para listar os items no banco de dados:

database.list_items(category=None)



______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


3. Re: manter arquivos gerados no script em uma pasta para poder checa-los ao rodar novamente o script! [RE

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 17/08/2017 - 15:23h

ctw6av escreveu:

Pesquise pelo termo "persistence". Posso também te indicar o shelve. Tenho um exemplo prático aqui:

Crie uma classe para representar o produto:

class Product(object):
def __init__(self, name, category, value):

self.category = category
self.value = value
self.id = uuid4()
self.name = name

def __str__(self):
return self.name


Depois use o shelve para cria um banco de dados:
class Database(object):
def __init__(self):
self.check_database()

@staticmethod
def list_categories():
with shelve.open(DATABASE_NAME) as database:
for key in database.keys():
print(key)
return True

@staticmethod
def list_items(category=None):
if category is None:
with shelve.open(DATABASE_NAME) as database:
for category in database:
print("--- {} ---".format(category))

for item in database[category]:
product = database[category][item]
print("Id: ", product.id)
print("Name:", product.name)
print("Value:", product.value)
print("-------")


@staticmethod
def insert(product):
with shelve.open(DATABASE_NAME, writeback=True) as database:
if product.category not in database.keys():
database[product.category] = dict()
db_category = database.get(product.category)
db_category[product.id] = product
return True

@staticmethod
def check_database():
if not os.path.exists(DATABASE_NAME + '.db'):
shelve.open(DATABASE_NAME)
return True



Já possui alguns métodos que eu criei mas é só um exemplo... para inserir um item:
    database = Database()
item = Product(name="Sapato", category="Vestuário", value=100)
database.insert(item)


Para listar os items no banco de dados:

database.list_items(category=None)



______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


Muito obrigado, amigo.

Se puderes me ajudar com o código principal fico grato. Tenho que basicamente coloca-lo em ordem.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts