CS50P 6_File I/O

Save Data in a List, but Run Again...

#save name to names list
names = []

for _ in range(3):
    names.append(input("What's your name? "))

for name in sorted(names):
    print(f"hello, {name}")
$python names.py 
What's your name? Ted
What's your name? Harry
What's your name? Rone
hello, Harry
hello, Rone
hello, Ted

names.py

Save Name Permanently

names.py

# Writes to a new file 

name = input("What's your name? ")

file = open("names.txt", "w") 
file.write(name)
file.close()
$ python names.py 
What's your name? Ted
$ cat names.txt
Ted

Append Data to a File

names.py

# Writes to a new file 

name = input("What's your name? ")

file = open("names.txt", "a")
file.write(f"{name}\n")
file.close()
$ python names.py
What's your name? Ted
$ python names.py
What's your name? Harry
$ cat names.txt
Ted
Harry

Auto Close File

# Adds context manager

name = input("What's your name? ")

with open("names.txt", "a") as file:
    file.write(f"{name}\n")
$ python names.py
What's your name? Ted
$ python names.py
What's your name? Harry
$ cat names.txt
Ted
Harry

names.py

Read Data from a File

# Reads from a file

with open("names.txt") as file:
    lines = file.readlines()

for line in lines:
    print("hello,", line.rstrip())
$ python names.py
hello, Ted
hello, Harry
$ cat names.txt
Ted
Harry

names.py

Read Data from File

# Reads from a file, one line at a time

with open("names.txt") as file:
    for line in file:
        print("hello,", line.rstrip())
$ python names.py
hello, Ted
hello, Harry
$ cat names.txt
Ted
Harry

names.py

CSV File

逗點分格資料的純文字檔案檔案格式

$ code students.csv
張三,123456
李四,135793
王五,243666

Read CSV File

# Reads a CSV file

with open("students.csv") as file:
    for line in file:
        row = line.rstrip().split(",")
        print(f"{row[0]} number is {row[1]}")
$ python names.py
張三 number is 123456
李四 number is 135793
王五 number is 243666

names.py

Read CSV File

# Unpacks a list

with open("students.csv") as file:
    for line in file:
        name, number = line.rstrip().split(",")
        print(f"{name} number is {number}")
$ python names.py
張三 number is 123456
李四 number is 135793
王五 number is 243666

names.py

Python Lambda 函式

匿名函式,不需要定義名稱,只有一行運算式

lambda parameter_list: expression

lambda : 關鍵字

parameter_list : 參數清單

expression : 運算式

Lambda Example

def square(x):
    return x ** 2
square = lambda x: x ** 2
square(2)
4

Lambda Example

def add(x,y):
    return x + y
add = lambda x, y: x + y
print(add(1, 2))
print(add(3, 5))
print(add)
3
8
<function <lambda> at 0x7fada83b1f28>

Lambda Example

def abs_number(x):
    if x >= 0:
        return x
    else:
        return -x
abs_number = lambda x : x if x >= 0 else -x
print(abs_number(10))
print(abs_number(-2))
10
2

Save PIL Image as GIF

CS50P 6_File I/O

By wschen

CS50P 6_File I/O

Learn how to save and retrieve data, work with CSV files, use Python Lambda functions, and save images in different file formats in CS50P 6_File I/O presentation.

  • 56