5
5
name_dict = {}
6
6
unknown_index = 0
7
7
def zero_insert (input_string ):
8
+
8
9
'''
9
10
This function get a string as input if input is one digit add a zero
10
11
:param input_string: input digit az string
@@ -32,34 +33,92 @@ def time_convert(input_data):
32
33
return zero_insert (str (input_day ))+ " days, " + zero_insert (str (input_hour ))+ " hour, " + zero_insert (str (input_minute ))+ " minutes, " + zero_insert (str (input_sec ))+ " seconds"
33
34
34
35
def VCF_init (file ):
36
+ '''
37
+ This function add static part of VCF
38
+ :param file: file object
39
+ :return: None
40
+ '''
35
41
file .write ("BEGIN:VCARD\n " )
36
42
file .write ("VERSION:3.0\n " )
37
43
38
44
def VCF_name (file ,first_name ,last_name ):
45
+ '''
46
+ This function add names to VCF file
47
+ :param file: file object
48
+ :param first_name: Name
49
+ :type first_name:str
50
+ :param last_name: Name
51
+ :type last_name:str
52
+ :return: None
53
+ '''
39
54
file .write ("N:" + last_name + ";" + first_name + ";;;" + "\n " )
40
55
file .write ("FN:" + first_name + " " + last_name + "\n " )
41
56
42
57
def VCF_phone (file ,tel_mobile ,tel_home ,tel_work ):
58
+ '''
59
+ This function add numbers
60
+ :param file: file object
61
+ :param tel_mobile: mobile number
62
+ :type tel_mobile:str
63
+ :param tel_home: home number
64
+ :type tel_home:str
65
+ :param tel_work: work number
66
+ :type tel_work:str
67
+ :return: None
68
+ '''
43
69
file .write ("TEL;type=CELL:" + tel_mobile + "\n " )
44
70
file .write ("TEL;type=HOME:" + tel_home + "\n " )
45
71
file .write ("TEL;type=WORK:" + tel_work + "\n " )
46
72
47
73
def VCF_email (file ,email_home ,email_mobile ,email_work ):
74
+ '''
75
+ This function add emails
76
+ :param file: file object
77
+ :param email_home: Email
78
+ :type email_home:str
79
+ :param email_mobile: Email
80
+ :type email_mobile:str
81
+ :param email_work: Email
82
+ :type email_work:str
83
+ :return: None
84
+ '''
48
85
file .write ("EMAIL;type=INTERNET;type=WORK;type=pref:" + email_work + "\n " )
49
86
file .write ("EMAIL;type=INTERNET;type=HOME;type=pref:" + email_home + "\n " )
50
87
file .write ("EMAIL;type=INTERNET;type=CELL;type=pref:" + email_mobile + "\n " )
51
88
52
89
53
90
def VCF_adr (file ,adr_work ,adr_home ):
91
+ '''
92
+ This function add Address
93
+ :param file: file object
94
+ :param adr_work: Address
95
+ :type adr_work:str
96
+ :param adr_home: Address
97
+ :type adr_home;str
98
+ :return: None
99
+ '''
54
100
file .write ('item1.ADR;type=WORK:;; ' + adr_work + "\n " )
55
101
file .write ('item2.ADR;type=HOME;type=pref:;; ' + adr_home + "\n " )
56
102
57
103
def VCF_website (file ,website_url ):
104
+ '''
105
+ This function add website url
106
+ :param file: file object
107
+ :param website_url: URL
108
+ :type website_url:str
109
+ :return: None
110
+ '''
58
111
file .write ('item3.URL;type=pref:' + website_url + "\n " )
59
112
file .write ("END:VCARD" )
60
113
file .close ()
61
114
62
115
def VCF_Folder (filename ):
116
+ '''
117
+ This function create VCF folder from file name
118
+ :param filename: input file name
119
+ :type filename:str
120
+ :return: VCF_folder_adr as str
121
+ '''
63
122
folder_adr = os .path .dirname (filename )
64
123
filename_split = filename .split ("/" )[- 1 ].split ("." )[0 ]
65
124
VCF_folder_adr = os .path .join (folder_adr , "VCF_CONVERT_" + filename_split )
@@ -68,6 +127,22 @@ def VCF_Folder(filename):
68
127
return VCF_folder_adr
69
128
70
129
def VCF_creator (folder_name ,first_name ,last_name ,tel_mobile ,tel_home ,tel_work ,email_home ,email_work ,email_mobile ,adr_work ,adr_home ,website_url ):
130
+ '''
131
+ This function create VCF files
132
+ :param folder_name: Folder name
133
+ :param first_name: Name
134
+ :param last_name: Name
135
+ :param tel_mobile: tel
136
+ :param tel_home: Tel
137
+ :param tel_work: Tel
138
+ :param email_home: Email
139
+ :param email_work:Email
140
+ :param email_mobile: Email
141
+ :param adr_work: Address
142
+ :param adr_home: Address
143
+ :param website_url: URL
144
+ :return: None
145
+ '''
71
146
file = open (os .path .join (folder_name ,last_name + "_" + first_name + ".vcf" ),"w" )
72
147
VCF_init (file )
73
148
VCF_name (file ,first_name ,last_name )
@@ -77,13 +152,29 @@ def VCF_creator(folder_name,first_name,last_name,tel_mobile,tel_home,tel_work,em
77
152
VCF_website (file ,website_url )
78
153
79
154
def name_dict_update (name ):
155
+ '''
156
+ This function save number of each name
157
+ :param name: input name
158
+ :type name:str
159
+ :return:None
160
+ '''
80
161
global name_dict
81
162
if name not in name_dict .keys ():
82
163
name_dict [name ] = 0
83
164
else :
84
165
name_dict [name ] = name_dict [name ] + 1
85
166
86
167
def VCF_write (temp ,name_dict ,foldername ):
168
+ '''
169
+ This function write VCF files in loop (call VCF_creator)
170
+ :param temp: list of each row information
171
+ :type temp:list
172
+ :param name_dict: dictionary of each name number
173
+ :type name_dict:dict
174
+ :param foldername: folder name
175
+ :type foldername:str
176
+ :return: None
177
+ '''
87
178
name = temp [0 ] + "," + temp [1 ]
88
179
name_dict_update (name )
89
180
global unknown_index
@@ -99,6 +190,12 @@ def VCF_write(temp,name_dict,foldername):
99
190
VCF_creator (foldername , temp [0 ], temp [1 ], temp [2 ], temp [3 ], temp [4 ], temp [5 ], temp [6 ], temp [7 ], temp [8 ],
100
191
temp [9 ], temp [10 ])
101
192
def csv_reader (file_name ):
193
+ '''
194
+ This function read input csv file and parse it
195
+ :param file_name: file name or address of file
196
+ :type file_name:tr
197
+ :return: vcf_counter as integer
198
+ '''
102
199
try :
103
200
file = open (file_name ,"r" )
104
201
0 commit comments