-
Notifications
You must be signed in to change notification settings - Fork 0
/
orodja.py
56 lines (41 loc) · 1.68 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
import csv
import os
import sys
import requests
def pripravi_imenik(ime_datoteke):
'''ce se 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()
if os.path.isfile(ime_datoteke) and not vsili_prenos:
print('shranjeno ze od prej!')
return
r = requests.get(url, headers={'Accept-Language': 'en'})
except requests.exceptions.ConnectionError:
print('stran ne obstaja!')
else:
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):
'''Iz seznama slovarjev ustvari CSV datoteko z glavo.'''
pripravi_imenik(ime_datoteke)
with open(ime_datoteke, 'w', encoding='utf-8', newline='') as csv_dat:
writer = csv.DictWriter(csv_dat, fieldnames=imena_polj, delimiter = ';')
writer.writeheader()
for slovar in slovarji:
writer.writerow(slovar)