-
Notifications
You must be signed in to change notification settings - Fork 0
/
orodja.py
52 lines (42 loc) · 1.6 KB
/
orodja.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
import csv
import os
import requests
import sys
def pripravi_imenik(ime_datoteke):
'''Če še ne obstaja, pripravi prazen imenik za dano datoteko.'''
imenik = os.path.dirname(ime_datoteke)
if imenik:
os.makedirs(imenik, exist_ok=True)
def shrani(url, ime_datoteke, vsili_prenos=False):
'''Vsebino strani na danem naslovu shrani v datoteko z danim imenom.'''
try:
print('Shranjujem {}...'.format(url), end='')
sys.stdout.flush()
#
# Ne shrani, če je že shranjeno.
#
#if os.path.isfile(ime_datoteke) and not vsili_prenos:
# print('shranjeno že od prej!')
# return
r = requests.get(url)
except requests.exceptions.ConnectionError:
print('stran ne obstaja!')
pripravi_imenik(ime_datoteke)
with open(ime_datoteke, 'w', encoding='utf-8') as datoteka:
datoteka.write(r.text)
print('shranjeno!')
def vsebina_datoteke(ime_datoteke):
'''Vrne niz z vsebino datoteke z danim imenom.'''
with open(ime_datoteke, encoding='utf-8') as datoteka:
vsebina = datoteka.read()
return vsebina
def datoteke(imenik):
'''Vrne imena vseh datotek v danem imeniku skupaj z imenom imenika.'''
return [os.path.join(imenik, datoteka) for datoteka in os.listdir(imenik)]
def zapisi_tabelo(slovarji, imena_polj, ime_datoteke):
pripravi_imenik(ime_datoteke)
with open(ime_datoteke, 'w', encoding='utf-8') as csv_dat:
writer = csv.DictWriter(csv_dat, fieldnames=imena_polj)
writer.writeheader()
for slovar in slovarji:
writer.writerow(slovar)