55name_dict = {}
66unknown_index = 0
77def zero_insert (input_string ):
8+
89 '''
910 This function get a string as input if input is one digit add a zero
1011 :param input_string: input digit az string
@@ -32,34 +33,92 @@ def time_convert(input_data):
3233 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"
3334
3435def VCF_init (file ):
36+ '''
37+ This function add static part of VCF
38+ :param file: file object
39+ :return: None
40+ '''
3541 file .write ("BEGIN:VCARD\n " )
3642 file .write ("VERSION:3.0\n " )
3743
3844def 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+ '''
3954 file .write ("N:" + last_name + ";" + first_name + ";;;" + "\n " )
4055 file .write ("FN:" + first_name + " " + last_name + "\n " )
4156
4257def 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+ '''
4369 file .write ("TEL;type=CELL:" + tel_mobile + "\n " )
4470 file .write ("TEL;type=HOME:" + tel_home + "\n " )
4571 file .write ("TEL;type=WORK:" + tel_work + "\n " )
4672
4773def 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+ '''
4885 file .write ("EMAIL;type=INTERNET;type=WORK;type=pref:" + email_work + "\n " )
4986 file .write ("EMAIL;type=INTERNET;type=HOME;type=pref:" + email_home + "\n " )
5087 file .write ("EMAIL;type=INTERNET;type=CELL;type=pref:" + email_mobile + "\n " )
5188
5289
5390def 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+ '''
54100 file .write ('item1.ADR;type=WORK:;; ' + adr_work + "\n " )
55101 file .write ('item2.ADR;type=HOME;type=pref:;; ' + adr_home + "\n " )
56102
57103def 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+ '''
58111 file .write ('item3.URL;type=pref:' + website_url + "\n " )
59112 file .write ("END:VCARD" )
60113 file .close ()
61114
62115def 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+ '''
63122 folder_adr = os .path .dirname (filename )
64123 filename_split = filename .split ("/" )[- 1 ].split ("." )[0 ]
65124 VCF_folder_adr = os .path .join (folder_adr , "VCF_CONVERT_" + filename_split )
@@ -68,6 +127,22 @@ def VCF_Folder(filename):
68127 return VCF_folder_adr
69128
70129def 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+ '''
71146 file = open (os .path .join (folder_name ,last_name + "_" + first_name + ".vcf" ),"w" )
72147 VCF_init (file )
73148 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
77152 VCF_website (file ,website_url )
78153
79154def 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+ '''
80161 global name_dict
81162 if name not in name_dict .keys ():
82163 name_dict [name ] = 0
83164 else :
84165 name_dict [name ] = name_dict [name ] + 1
85166
86167def 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+ '''
87178 name = temp [0 ] + "," + temp [1 ]
88179 name_dict_update (name )
89180 global unknown_index
@@ -99,6 +190,12 @@ def VCF_write(temp,name_dict,foldername):
99190 VCF_creator (foldername , temp [0 ], temp [1 ], temp [2 ], temp [3 ], temp [4 ], temp [5 ], temp [6 ], temp [7 ], temp [8 ],
100191 temp [9 ], temp [10 ])
101192def 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+ '''
102199 try :
103200 file = open (file_name ,"r" )
104201
0 commit comments