forked from FelipeMendesS/laser
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathread_binary.py
62 lines (49 loc) · 1.63 KB
/
read_binary.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# -*- coding: cp1252 -*-
import os
import zipfile
import threading
from struct import *
# colocar aqui o diretório do arquivo usando barra dupla (\\)
path = 'C:\\Users\\Usuário\\Desktop\\ITA\\ELE\\4º Semestre\\Projeto EEA-47\\Leitura_Arquivos'
path2 = 'C:\\Users\\Usuário\\Desktop'
os.chdir(path)
def send_file():
ans = 's'
while ans == 's':
# lê o nome e a extebsão do arquivo
name = raw_input("Digite o nome do arquivo que deseja enviar: ")
ext = raw_input("Digite a extensão do arquivo: ")
arq = name + "." + ext
# cria um zip e adiciona o arquivo
zf = zipfile.ZipFile(name + ".zip", 'w')
zf.write(arq)
zf.close()
<<<<<<< HEAD
# lê o arquivo zipado como binário
with open(name + ".zip",'rb') as f:
data = f.read()
os.remove(name + ".zip")
=======
# lê o arquivo zipado como binário
with open(name + ".zip", 'rb') as f:
data = f.read()
os.remove(name + ".zip")
>>>>>>> origin/master
# prepara e envia o aqrquivo
data_byte = bytearray(data)
N_byte = bytearray(pack('i', len(data_byte)))
msg = bytearray([1]) + N_byte + bytearray(arq)
send_data
ans = raw_input("Gostaria de enviar outro arquivo? (s/n): ")
----------------------------------------------------------------
# simulando a recepção
recebido_byte = bytearray(N)
for i in range(0, N):
recebido_byte[i] = data_byte[i]
recebido = str(recebido_byte)
with open(name + "_saida.zip", 'wb') as g:
g.write(recebido)
zfile = zipfile.ZipFile(name + "_saida.zip")
zfile.extract(arq, path2)
zfile.close()
os.remove(name + "_saida.zip")