Skip to content

Commit 4b685e5

Browse files
committed
add code
1 parent d1b27b7 commit 4b685e5

File tree

8 files changed

+440
-69
lines changed

8 files changed

+440
-69
lines changed

Automation/os.py

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
from datetime import datetime
2+
import os
3+
4+
# print(dir(os))
5+
6+
# get current working directory
7+
print(os.getcwd())
8+
9+
10+
os.chdir("d:/1/")
11+
12+
# print(os.listdir())
13+
14+
print(os.getcwd())
15+
16+
print(os.listdir())
17+
18+
if not os.path.isdir("test2/test3"):
19+
os.makedirs("test2/test3")
20+
21+
# remove directories
22+
# os.removedirs("test2/test3/")
23+
24+
# only removes the last directory
25+
os.rmdir("test2/test3")
26+
27+
if not os.path.isdir("test22"):
28+
os.rename("test2", "test22")
29+
30+
print(os.stat("test22"))
31+
32+
print(datetime.fromtimestamp(os.stat("test22").st_mtime))
33+
34+
for dirpath, dirname, filename in os.walk(os.getcwd()):
35+
print("Current Path: ", dirpath)
36+
print("Directories: ", dirname)
37+
print("Files: ", filename)
38+
print()
39+
40+
# print(os.environ)
41+
42+
print(os.environ.get("HOME"))
43+
44+
file_path = os.path.join(os.getcwd(), "test.txt")
45+
print(file_path)
46+
47+
print(os.path.basename("/tmp/test.txt"))
48+
49+
print(os.path.dirname("/tmp/test.txt"))
50+
51+
print(os.path.split("/tmp/2/3/test.txt"))
52+
53+
54+
print(os.path.split("/tmp/2/3/"))
55+
56+
print(os.path.exists("/tmp/2/3/"))
57+
58+
print(os.path.isdir("/tmp/2/3/"))
59+
print(os.path.isfile("/tmp/2/3/"))
60+
61+
print(os.path.splitext("/tmp/2/3/test.txt"))

Datetime/datetime_1.py

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import datetime
2+
3+
# https://arrow.readthedocs.io/en/latest/
4+
5+
# pip install tzdata
6+
from zoneinfo import ZoneInfo
7+
import zoneinfo
8+
9+
# pip install pytz, not recommended by python anymore, use zoneinfo
10+
# import pytz
11+
12+
x = datetime.date(2020, 5, 17)
13+
print(x)
14+
15+
tday = datetime.date.today()
16+
print(tday.year, tday.month, tday.day, tday.weekday(), tday.isoweekday())
17+
18+
tdelta = datetime.timedelta(days=7)
19+
20+
print(tday - tdelta, tday + tdelta)
21+
22+
# date2 = date1 + timedelta
23+
# timedelta = date1 +- date2
24+
25+
bday = datetime.date(2025, 12, 2)
26+
27+
till_bday = bday - tday
28+
print(till_bday.days, till_bday.total_seconds(), till_bday)
29+
30+
31+
t = datetime.time(9, 30, 45, 100000)
32+
print(t, t.hour)
33+
34+
35+
dt = datetime.datetime(2016, 7, 24, 12, 30, 45, 100000)
36+
print(dt, dt.date(), dt.time())
37+
38+
39+
today = datetime.datetime.today()
40+
now = datetime.datetime.now(tz=datetime.timezone.utc)
41+
utcnow = datetime.datetime.utcnow()
42+
print(today)
43+
print(now)
44+
print(utcnow)
45+
46+
47+
dt_utc = datetime.datetime(2016, 7, 27, 12, 30, 45, 2000, tzinfo=datetime.timezone.utc)
48+
print(dt_utc)
49+
50+
51+
dt_toronto = dt_utc.astimezone(datetime.timezone(datetime.timedelta(hours=-5)))
52+
print(dt_toronto)
53+
54+
dt_toronto_1 = dt_utc.astimezone(ZoneInfo("America/Toronto"))
55+
print(dt_toronto_1)
56+
57+
58+
for tz in zoneinfo.available_timezones():
59+
print(tz)
60+
61+
local_time = datetime.datetime.now()
62+
print(local_time)
63+
64+
65+
dt_los_angeles = local_time.astimezone(ZoneInfo("America/Los_Angeles"))
66+
print(dt_los_angeles)
67+
68+
print(dt_los_angeles.isoformat())
69+
70+
71+
print(dt_los_angeles.strftime("%B %d, %Y"))
72+
73+
dt_str = "July 26, 2016"
74+
dt = datetime.datetime.strptime(dt_str, "%B %d, %Y")
75+
print(dt)

List_Comp/comprehensions.py

+59-20
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
1-
nums = [1,2,3,4,5,6,7,8,9,10]
1+
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
22

33
# I want 'n' for each 'n' in nums
44
my_list = []
55
for n in nums:
6-
my_list.append(n)
7-
print my_list
6+
my_list.append(n)
7+
print(my_list)
88

9-
print [n for n in nums]
9+
print([n for n in nums])
1010

1111
# I want 'n*n' for each 'n' in nums
1212
# my_list = []
1313
# for n in nums:
1414
# my_list.append(n*n)
1515
# print my_list
1616

17-
# Using a map + lambda
18-
# my_list = map(lambda n: n*n, nums)
19-
# print my_list
17+
# Using a map + lambda(anonymous function)
18+
my_list_1 = map(lambda n: n * n, nums)
19+
print(list(my_list_1))
20+
21+
22+
my_list_2 = [n * n for n in nums]
23+
print(my_list_2)
2024

2125
# I want 'n' for each 'n' in nums if 'n' is even
2226
# my_list = []
@@ -26,8 +30,12 @@
2630
# print my_list
2731

2832
# Using a filter + lambda
29-
# my_list = filter(lambda n: n%2 == 0, nums)
30-
# print my_list
33+
my_list_3 = filter(lambda n: n % 2 == 0, nums)
34+
print(list(my_list_3))
35+
36+
37+
my_list_4 = [n for n in nums if n % 2 == 0]
38+
print(my_list_4)
3139

3240
# I want a (letter, num) pair for each letter in 'abcd' and each number in '0123'
3341
# my_list = []
@@ -36,20 +44,39 @@
3644
# my_list.append((letter,num))
3745
# print my_list
3846

47+
my_list_5 = [(letter, num) for letter in "abcd" for num in range(4)]
48+
print(my_list_5)
49+
50+
51+
# what is zip(), join 2 tuples together
52+
a = ("John", "Charles", "Mike")
53+
b = (
54+
"Jenny",
55+
"Christy",
56+
)
57+
58+
x = zip(a, b)
59+
print(list(x))
60+
3961
# Dictionary Comprehensions
40-
names = ['Bruce', 'Clark', 'Peter', 'Logan', 'Wade']
41-
heros = ['Batman', 'Superman', 'Spiderman', 'Wolverine', 'Deadpool']
42-
# print zip(names, heros)
62+
names = ["Bruce", "Clark", "Peter", "Logan", "Wade"]
63+
heros = ["Batman", "Superman", "Spiderman", "Wolverine", "Deadpool"]
64+
print(list(zip(names, heros)))
65+
4366

4467
# I want a dict{'name': 'hero'} for each name,hero in zip(names, heros)
4568
# my_dict = {}
4669
# for name, hero in zip(names, heros):
4770
# my_dict[name] = hero
4871
# print my_dict
4972

50-
73+
# zip(iterator1, iterator2, iterator3 ...)
74+
my_dict_1 = {name: hero for name, hero in zip(names, heros)}
75+
print(my_dict_1)
5176

5277
# If name not equal to Peter
78+
my_dict_2 = {name: hero for name, hero in zip(names, heros) if name != "Peter"}
79+
print(my_dict_2)
5380

5481
# Set Comprehensions
5582
# nums = [1,1,2,1,3,4,3,4,5,5,6,7,8,7,9,9]
@@ -58,16 +85,28 @@
5885
# my_set.add(n)
5986
# print my_set
6087

88+
my_set_1 = {n for n in nums}
89+
print(my_set_1)
90+
6191

6292
# Generator Expressions
6393
# I want to yield 'n*n' for each 'n' in nums
64-
nums = [1,2,3,4,5,6,7,8,9,10]
94+
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
95+
96+
my_gen = (n * n for n in nums)
97+
98+
print(my_gen)
99+
100+
for i in my_gen:
101+
print(i)
102+
103+
104+
def gen_func(nums):
105+
for n in nums:
106+
yield n * n
65107

66-
# def gen_func(nums):
67-
# for n in nums:
68-
# yield n*n
69108

70-
# my_gen = gen_func(nums)
109+
my_gen_1 = gen_func(nums)
71110

72-
# for i in my_gen:
73-
# print i
111+
for i in my_gen_1:
112+
print(i)

Python-Lists/sort.py

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
li = [9, 1, 8, 2, 7, 3, 6, 4, 5, 0]
2+
3+
s_li = sorted(li, reverse=True)
4+
5+
print("sorted:\t", s_li)
6+
print("original:\t", li)
7+
8+
li.sort(reverse=True)
9+
10+
print("sorted:\t", li)
11+
print("original:\t", li)
12+
13+
tup = (9, 1, 8, 2, 7, 3, 6, 4, 5, 0)
14+
s_tup = sorted(tup, reverse=True)
15+
16+
print("sorted:\t", s_tup)
17+
print("original:\t", tup)
18+
19+
20+
di = {"name": "Corey", "job": "Programmer", "age": 28, "os": "Mac"}
21+
22+
s_di = sorted(di)
23+
24+
# odd, sorts by key, and only return keys
25+
print("sorted:\t", s_di) # ['age', 'job', 'name', 'os']
26+
print("original:\t", di)
27+
28+
29+
li_1 = [-6, -5, -4, 8, 9, 1, 4, -1]
30+
# s_li_1 = sorted(li_1, key=abs)
31+
s_li_1 = sorted(li_1, key=lambda x: abs(x))
32+
print("sorted:\t", s_li_1)
33+
print("original:\t", li_1)
34+
35+
36+
class Employee:
37+
def __init__(self, name, salary):
38+
self.name = name
39+
self.salary = salary
40+
41+
def __repr__(self):
42+
return "Employee({}, ${})".format(self.name, self.salary)
43+
44+
45+
employees = [
46+
Employee("Tim", 50000),
47+
Employee("Jane", 60000),
48+
Employee("John", 70000),
49+
Employee("John", 20000),
50+
Employee("Bob", 40000),
51+
]
52+
53+
s_employees = sorted(employees, key=lambda x: x.salary)
54+
print("sorted:\t", s_employees)
55+
print("original:\t", employees) # Not sorted
56+
57+
58+
# sort by name, then salary
59+
def e_sort(emp):
60+
return (emp.name, emp.salary)
61+
62+
63+
# sort by name, then salary reversed
64+
def e_sort(emp):
65+
return (emp.name, -emp.salary)
66+
67+
68+
s_employees = sorted(employees, key=e_sort)
69+
print("sorted:\t", s_employees)
70+
print("original:\t", employees)
71+
72+
from operator import attrgetter
73+
74+
s_employees = sorted(employees, key=attrgetter("name", "salary"))
75+
print("sorted:\t", s_employees)
76+
print("original:\t", employees)

0 commit comments

Comments
 (0)