python - advanced - 13 - Advanced modules 1
Beginner - Intermediate - Advanced Functions - Iterators -
Advanced modules-1 - Advanced modules-2
Advanced modules
Datetime modulu
from datetime import datetime
simdi = datetime.now()
result1 = simdi.year
result2 = datetime.ctime(simdi)
result3 = datetime.strftime(simdi,'%Y')
print (result1)
print (result2)
print (result3)
#
2024
Mon Aug 19 22:38:08 2024
2024
split yerine strptime
t='15 April 2019 hour 10:12:30'
result1 = datetime.strptime(t,'%d %B %Y hour %H:%M:%S')
print(result1)
result2 = result1.year
print(result2)
#
2019-04-15 10:12:30
2019
OS modulu
Dosya klasör işlemleri
import os
result = dir(os)
result = os.name # hangi os bu bilgisayarda : nt
result=os.getcwd() # su anda calistigim klasor: C:\py\test\python-exercise
make directory:
os.mkdir("jojomoka")
program calistirma
os.system("notepad.exe")
Regular expression modulu
ara bul
import re
strText ="Python kursu: Yo super Python kursu"
result=re.findall("Python",strText)
#['Python', 'Python']
bol listele
import re
strText ="Python kursu: Yo super Python kursu"
result=re.split(" ",strText)
print(result)
#
['Python', 'kursu:', 'Yo', 'super', 'Python', 'kursu']
find replace
import re
strText ="Python kursu: Yo super Python kursu"
result=re.sub(" ","||",strText)
print(result)
#
Python||kursu:||Yo||super||Python||kursu
search like
.. iki karakter degisebilir
mport re
strText ="Python kursu: Yo super Python kursu"
result=re.findall("Py..on",strText)
print(result)
#
['Python', 'Python']
starts with
result=re.findall("^P",strText)
#
['P'] # ilk rastladigini verip duruyor
ends with
tum strText`i blok olarak alip,bunun `u` ile bitip bitmedigine bakar. Her bir kelime blogunu alip bakmak icin split ile liste haline getirmek lazim
result=re.findall("u$",strText)
print(result)
Json modulu
Her turlu platform Json`u kullaniyor: android, web uygulamasi vs
Data veri turu. ortak veri tasima araci
JSON bilgiler hep string olarak gelir, ama ici Json`a gore duzenlenmistir
import json
person='{"name":"Ali","lang":["py","C#"]}'
#normalde dictionnary basinda {} var,
#ama JSON dict`i hep '` icine aliyor
# yukaridaki person Json'a gore bir dictionnary`dir`
result= json.loads(person)
print(type(result)) #<class 'dict'> olarak verir
print(result)
print(result["name"]) #Ali
#
{'name': 'Ali', 'lang': ['py', 'C#']}
Ali
Json dosyasi okuma
person.json
'{"name":"Ali","lang":["py","C#"]}'
json.py
import json
with open("person.json") as p_json:
data_pers =json.load(p_json)
print(data_pers)
print(data_pers["name"]) #Ali
#
{'name': 'Ali', 'lang': ['py', 'C#']}
Dosyaya append et
person_dict = {
"name":"Coni Be Good",
"lang":["Vba","Pascal"]
}
with open("person.json","a") as p_json:
# data_pers =json.load(p_json)
# print(data_pers)
json.dump(person_dict,p_json)
person.json
{"name":"Ali","lang":["py","C#"]}{"name": "Coni Be Good", "lang": ["Vba", "Pascal"]}
Requests modulu
bunu kendimiz yuklememiz lazim
c:\Python312 altina yuklemek bende isledi
pip install requests
>pip list msdos komutu ile yuklenis oldugunu kontrol et
PS C:\prog_test\test\python-exer> pip list
Package Version
------------------ --------
certifi 2024.7.4
charset-normalizer 3.3.2
idna 3.7
numpy 2.0.0
pip 24.0
requests 2.32.3
sqlparse 0.5.1
tzdata 2024.1
urllib3 2.2.2 ayrica explorer`da suraya bakip da kontrol edebiliriz:
C:\Python312\Lib\site-packages
Json ile web bilgi etme
import requests
# jsonplaceholder.typicode.com
result = requests.get("https://jsonplaceholder.typicode.com/todos")
print (result)
print (type(result)) # str - bize string bilgi geliyor - Json lazim demektir
#
<Response [200]> - bu basarili olduk demek
- Json ile bilgi ayiklama
mport requests
import json
# jsonplaceholder.typicode.com
result = requests.get("https://jsonplaceholder.typicode.com/todos")
result=json.loads(result.text)
for i in result:
print(i['title'])
#
delectus aut autem
quis ut nam facilis et officia qui
fugiat veniam minus
................. vs vs....
Filtreleme
import requests
import json
# jsonplaceholder.typicode.com
result = requests.get("https://jsonplaceholder.typicode.com/todos")
result=json.loads(result.text)
for i in result:
if i["userId"]==2: # FILTRELEME
print(i['title'])
#
suscipit repellat esse quibusdam voluptatem incidunt
distinctio vitae autem nihil ut molestias quo
et itaque necessitatibus maxime molestiae qui quas velit
adipisci non ad dicta qui amet quaerat doloribus ea
..........
Exchange rate API ile doviz uygulamasi
https://www.exchangerate-api.com/ : bir servis kullanimini biliyor olmamiz gerekiyor - bu ucretsiz - ama su kadara kadar ucretsiz, daha fazla request olursa
import requests
import json
api_key_exch = "e731dd249c6995xxxx466"
api_url_exch = f"https://v6.exchangerate-api.com/v6/{api_key_exch}/latest/" # sond USD vardi sildim, kendimiz ekleyecegiz
bozulan_doviz = input("bozuklan doviz turu: ")
alinan_doviz = input("Alinan doviz turu: ")
miktar = input(f"ne kadar {bozulan_doviz} bozdurmak istiyorsunuz: ")
sonuc = requests.get(api_url_exch + bozulan_doviz)
#print(sonuc.text) # conversion_rates en basta yazi olarak yazar ---
sonuc_json=json.loads(sonuc.text)
print(sonuc_json["conversion_rates"][alinan_doviz])
#
bozuklan doviz turu: USD
Alinan doviz turu: TRY
ne kadar USD bozdurmak istiyorsunuz: 100
33.7754
- formati duzeltilmis output -
import requests
import json
api_key_exch = "e731dd249c6995xxxx466"
api_url_exch = f"https://v6.exchangerate-api.com/v6/{api_key_exch}/latest/"
bozulan_doviz = input("bozuklan doviz turu: ")
alinan_doviz = input("Alinan doviz turu: ")
miktar = int(input(f"ne kadar {bozulan_doviz} bozdurmak istiyorsunuz: "))
sonuc = requests.get(api_url_exch + bozulan_doviz)
#print(sonuc.text) # conversion_rates en basta yazi olarak yazar ---
sonuc_json=json.loads(sonuc.text)
#print(sonuc_json["conversion_rates"][alinan_doviz]) #33.754
print("1 {0}={1}{2}".format(bozulan_doviz,sonuc_json["conversion_rates"][alinan_doviz],alinan_doviz))
#
bozuklan doviz turu: USD
Alinan doviz turu: TRY
ne kadar USD bozdurmak istiyorsunuz: 100
1 USD=33.7754TRY
-hesaplama-
import requests
import json
api_key_exch = "e731dd249c6995xxxx466"
api_url_exch = f"https://v6.exchangerate-api.com/v6/{api_key_exch}/latest/" # sond USD vardi sildim, kendimiz ekleyecegiz
bozulan_doviz = input("bozuklan doviz turu: ")
alinan_doviz = input("Alinan doviz turu: ")
miktar = int(input(f"ne kadar {bozulan_doviz} bozdurmak istiyorsunuz: "))
sonuc = requests.get(api_url_exch + bozulan_doviz)
#print(sonuc.text) # conversion_rates en basta yazi olarak yazar ---
sonuc_json=json.loads(sonuc.text)
#print(sonuc_json["conversion_rates"][alinan_doviz]) #33.754
print("1 {0}={1}{2}".format(bozulan_doviz,sonuc_json["conversion_rates"][alinan_doviz],alinan_doviz))
print("{0}{1}={2}{3}".format(miktar,bozulan_doviz, miktar* sonuc_json["conversion_rates"][alinan_doviz],alinan_doviz))
#
bozuklan doviz turu: USD
Alinan doviz turu: TRY
ne kadar USD bozdurmak istiyorsunuz: 100
1 USD=33.7754TRY
100USD=3377.54TRY
GitHub REST API
acik repository uzerinden bu yapilir
github`a git
profile tikladiginda `a cikan menude:
settings`e git
-> developper settings
yazi kisminda developper documentation`a tikla
ya da
github developper
burada nasil kullanilacagi anlatilir
biz su adrese gidecegiz
api.github.com
https://api.github.com/users/oruckenan
https://api.github.com/users/oruckenan/repos
settings-developper settings
personal access tokens / tokens classic/ burada generate token yapmaliyiz
bir kod verilecek:
XXXXXXXXXXj8YZa4IKzJ6
import requests
class Github_repo:
def __init__(self):
self.api_url ='https://api.github.com'
self.token='ghp_xxxxxxxxxxxxxxxxZa4IKzJ6'
def getUser(self,username):
response=requests.get(self.api_url+'/users/'+username)
return response.json() # bu PARANTEZ`lere dikkat et - canimdan bezdirdi bulana kadar
def getRepositories(self,username):
response=requests.get(self.api_url+'/users/'+username+'/repos')
return response.json()
def createRepository(self,name):
response=requests.post(self.api_url+'/user/repos?access_token='+self.token,json={
"name":name,
"description":"this is t 1st repo",
"hompage":"https://alorya.com",
"private":False,
"has_issues":True,
"has_projects":True,
"has_wiki":True
})
return response.json() ### Calismiyor cunku github sys degistirmis ###
github_obj = Github_repo()
github_obj = Github_repo()
while True:
secim = input('1-find user\n2-get repo\n3-create repo\n4-Exit\nSeciniz: ')
if secim=='4':
break
else:
if secim =='1':
username=input('username: ')
result=github_obj.getUser(username)
print(f'name: {result['name']} - public repo: {result['public_repos']} - follower: {result['followers']}')
elif secim =='2':
username = input('username: ') print(repo['name'])
result=github_obj.getRepositories(username)
for repo in result:
elif secim =='3':
name =input('repository name: ')
result = github_obj.createRepository(name)
print(result)
else:
print("yanlis secim")
# 1 #
username: oruckenan
name: O. Kenan Yildirim - public repo: 9 - follower: 0
# 2 #
Seciniz: 2
username: oruckenan
asp_net
gallery-7
java
reactjs-by-ArtiDjeims-galleryApp
reactjs-by-gulshancodes
reactjs-by-kaeross-galleryApp
reactjs-by-OriAmir-React-Responsive
reactjs-by-Signor1-filterableGallery
vba_multiple
# 3 #
normalde data ekler
# 4 #
yanlis secim
Kendi modulumuzu yazmak
_modules_mod.py
klasor icinde bu dosya ile dururken, bunu import ile baska dosya icinden cagirabiliriz
veya
eklemek icin ilk once hangi path de koymamiz gerektigini bulmak icin
windows powershell veya msdos prompt
>python.exe
>>>import sys
>>>sys.path
buradan AppData icindeki python.../lib klasoru icine _modules_mod.py dosyasini koyabiliriz
cagirmak icin yine import kullanabiliriz
Not: Kendi modulumuzu yazdigimizda, filename olarak sayi ile baslayamaz
Comments
Post a Comment