-
Notifications
You must be signed in to change notification settings - Fork 0
/
orodja.py
53 lines (43 loc) · 1.71 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
53
import csv
import json
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_spletno_stran(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 že od prej!')
return
r = requests.get(url)
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:
return datoteka.read()
def zapisi_csv(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') as csv_datoteka:
writer = csv.DictWriter(csv_datoteka, fieldnames=imena_polj)
writer.writeheader()
for slovar in slovarji:
writer.writerow(slovar)
def zapisi_json(objekt, ime_datoteke):
'''Iz danega objekta ustvari JSON datoteko.'''
pripravi_imenik(ime_datoteke)
with open(ime_datoteke, 'w', encoding='utf-8') as json_datoteka:
json.dump(objekt, json_datoteka, indent=4, ensure_ascii=False)