Skip to content

Commit 093ae0d

Browse files
author
Hallison Paz
committed
depois de gravar PP08
1 parent 9a44928 commit 093ae0d

File tree

4 files changed

+45
-13
lines changed

4 files changed

+45
-13
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
venv/*
22
output/*
33
draft/*
4-
.DS_Store
4+
.DS_Store
5+
*/__pycache__/*

input/diretorios.csv

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
origem,destino
2-
/Users/hallpaz/OneDrive/Escritor,/Users/hallpaz/OneDrive/Programação Dinâmica/Fotos
3-
/Users/hallpaz/Downloads,/Users/hallpaz/Desktop
2+
input,output

src/copiar.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import os
2+
import shutil
3+
from csv import DictReader
4+
from pathlib import PurePath
5+
6+
7+
def copiar_origem_destino(nomearquivo):
8+
with open(nomearquivo) as meucsv:
9+
reader = DictReader(meucsv)
10+
for linha in reader:
11+
orig = linha['origem']
12+
dest = linha['destino']
13+
if os.path.exists(dest):
14+
nome = PurePath(orig).name
15+
dest = os.path.join(dest, nome)
16+
# faz a cópia da pasta e tudo em seu interior
17+
shutil.copytree(orig, dest)
18+
print(dest, 'foi copiado com sucesso!')
19+
20+
if __name__ == "__main__":
21+
copiar_origem_destino('input/diretorios.csv')
22+

src/selecionar.py

+20-10
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
import os
22
from tkinter import filedialog, messagebox
3+
from copiar import copiar_origem_destino
34

45

5-
continuar = messagebox.askyesno(title='Adicionar linha',
6+
def deve_continuar():
7+
return messagebox.askyesno(title='Adicionar linha',
68
message='Gostaria de selecionar um par origem e destino?')
79

8-
with open(os.path.join('input', 'diretorios.csv'), 'w') as dircsv:
9-
# cabeçalho do CSV
10-
dircsv.write('origem,destino\n')
11-
while continuar:
12-
origem = filedialog.askdirectory()
13-
destino = filedialog.askdirectory()
14-
dircsv.write(f'{origem},{destino}\n')
15-
continuar = messagebox.askyesno(title='Adicionar linha',
16-
message='Gostaria de selecionar mais um par origem e destino?')
10+
def construir_origem_destino(nomearquivo, modo='w'):
11+
with open(nomearquivo, modo) as dircsv:
12+
if modo == 'w':
13+
# cabeçalho do CSV
14+
dircsv.write('origem,destino\n')
15+
while deve_continuar():
16+
origem = filedialog.askdirectory()
17+
destino = filedialog.askdirectory()
18+
dircsv.write(f'{origem},{destino}\n')
19+
20+
if __name__ == "__main__":
21+
arquivo = os.path.join('input', 'diretorios.csv')
22+
if os.path.exists(arquivo):
23+
construir_origem_destino(arquivo, 'a')
24+
else:
25+
construir_origem_destino(arquivo)
26+
copiar_origem_destino(arquivo)
1727

0 commit comments

Comments
 (0)