def manage_csv(csv, check): bar = '/' #Verifica o tamanho do arquivo definido em track size = os.path.getsize(track.getPath()) #Define o nome da nova pasta a ser criada com o arquivo de backup date = time.strftime("%d-%m-%Y_%Hh%Mmin%Ss") #hour = time.strftime("%H") #minute = time.strftime("%M") #second = time.strftime("%S") path = (track.getBackupPath() + date + '/') if size >= 262144000 or check == 1: #Cria��o de uma nova pasta os.mkdir(path) #Copia o arquivo para a nova pasta shutil.copy(track.getPath(), path) #Renomeia o arquivo para a data na qual foi gerado. old = (path + bar + 'actual.csv') new = (path + bar + date + '.csv') os.renames(old, new) #Fecha o arquivo atual antigo e o remove. Um novo arquivo � criado a partir de uma chamada da fun��o create_csv #na fun��o principal csv.close() os.remove(track.getPath()) if size >= 262144000: email.sendEmail(0,new) #Retorna verdadeiro se toda esta opera��o fora concluida com sucesso return True #elif int(hour) % 4 == 0 and (int(minute) + int(second)) == 0: #email.sendEmail(1, "") #return False else: return False
# Chaves de autenticação CONSUMER_KEY = 'XOy76iSIQUOHa0g7HhMuT6Fku' CONSUMER_SECRET = 'ONTI7KGeCefDYkuC9OV00SUXDdIYeVajQn25ZcNrcKKPIAOi44' ACCESS_TOKEN_KEY = '589711107-Ui4d2kgolDP7ps95MqMKKuOYjGplQqQTIu8ytmK6' ACCESS_TOKEN_SECRET = '7BcsLRODJVs6GcFUuEh7kmyiLq1l2fyCpUdjuBGOUtRSo' # Criação de uma lista com as chaves de autenticação api = TwitterAPI(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET) # Requisição na API r = api.request('statuses/filter', {'language': 'pt', 'track': TRACK_TERM}) s = ';' # Verifica se o arquivo actual.csv existe. Se existir, ele e movido para uma pasta de backup if os.path.isfile(track.getPath()): csv = open(track.getPath(), 'w', encoding="utf-8") stream.manage_csv(csv, 1) csv.close() else: csv = stream.create_csv() # Geração de CSV #csv = stream.create_csv() # Criação das linhas for item in r: #Gera as linhas num arquivo .csv stream.generate_rows(item, s, csv) #Caso o arquivo CSV ultrapasse 250MB, o mesmo será copiado para uma nova pasta e um novo arquivo CSV é criado.
import streaming.track as track import streaming.stream as stream import sendEmail.sendEmail as sendEmail import os import datetime, time import urllib.request currentHour = (int(time.strftime("%H")) * 100) + int(time.strftime("%M")) mtime = datetime.datetime.fromtimestamp(os.path.getmtime(track.getPath())) modHour = (int(str(mtime)[11:13]) * 100) + int(str(mtime)[14:16]) totalHour = abs(currentHour - modHour) if totalHour >= 10: csv = open(track.getPath(), 'r', encoding="utf-8") try: urllib.request.urlopen('http://www.google.com', timeout=1) stream.manage_csv(csv, 1) sendEmail.sendEmail(2, str(totalHour)) except urllib.request.URLError: print("Erro") csv.close()
CONSUMER_SECRET = 'x' ACCESS_TOKEN_KEY = 'x' ACCESS_TOKEN_SECRET = 'x' # Criação de uma lista com as chaves de autenticação api = TwitterAPI(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET) # Requisição na API r = api.request('statuses/filter', {'language': 'pt', 'track': TRACK_TERM}) s = ';' # Verifica se o arquivo actual.csv existe. Se existir, ele e movido para uma pasta de backup if os.path.isfile(track.getPath()): csv = open(track.getPath(), 'w', encoding="utf-8" ) stream.manage_csv(csv, 1) csv.close() else: csv = stream.create_csv() # Geração de CSV #csv = stream.create_csv() # Criação das linhas for item in r: #Gera as linhas num arquivo .csv stream.generate_rows(item, s, csv) #Caso o arquivo CSV ultrapasse 250MB, o mesmo será copiado para uma nova pasta e um novo arquivo CSV é criado.
def create_csv(): csv = open(track.getPath(), 'w', encoding="utf-8" ) csv.write(track.getHeader()) return csv