Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

1. Viết chương trình ghi một nội dung bất kỳ ra thành một tệp trong Python.

with open("/tmp/test", "w") as f:


f.write("hello world")
2. Viết hàm đọc n dòng đầu tiên của một tập tin
N=3
with open('/tmp/lines') as f:
for ith, line in enumerate(f):
if ith < N:
print(line.rstrip())
3. Lưu cấu trúc dữ liệu sau đây dưới định dạng pickle, và sau đó tải tệp vừa lưu
xuất ra màn hình: sample = {"id": 100, "data": [1,2,3,4,5] }
import pickle

sample = {"id": 100, "data": [1,2,3,4,5] }


with open("/tmp/pickletest", 'wb') as f:
pickle.dump(sample, f)

with open("/tmp/pickletest", 'rb') as f:


data = pickle.load(f)
print(data)
4. Viết hàm kiểm tra một tập tin bất kỳ có tồn tại hay không? Nếu có trả về True
và ngược lại False.
import os
def is_exist(fname):
return os.path.isfile(fname)
print(is_exist("/tmp/lines"))
5. Cho một tệp như sau:

sample.txt

Sagittis id consectetur purus ut faucibus pulvinar elementum. In nisl nisi


scelerisque eu ultrices. Sit amet consectetur adipiscing elit duis tristique.
Vestibulum lorem sed risus ultricies. Aenean euismod elementum nisi quis
eleifend quam adipiscing vitae. Nunc sed id semper risus in hendrerit
gravida rutrum. Cras sed felis eget velit aliquet sagittis id. Purus faucibus
ornare suspendisse sed nisi. Egestas integer eget aliquet nibh praesent.
Orci eu lobortis elementum nibh tellus molestie nunc. Elementum facilisis
leo vel fringilla. Massa enim nec dui nunc mattis. At auctor urna nunc id
cursus. Et ligula ullamcorper malesuada proin libero.
Amet risus nullam eget felis. Nec dui nunc mattis enim. Adipiscing
commodo elit at imperdiet dui accumsan sit. Fermentum et sollicitudin ac
orci phasellus egestas tellus. Urna duis convallis convallis tellus id interdum.
Pretium nibh ipsum consequat nisl. Commodo elit at imperdiet dui. Faucibus
scelerisque eleifend donec pretium vulputate sapien nec.
Convallis convallis tellus id interdum velit laoreet. Vestibulum lorem sed
risus ultricies tristique nulla aliquet. Tincidunt augue interdum velit euismod
in pellentesque massa placerat duis. Magnis dis parturient montes nascetur
ridiculus. Turpis egestas maecenas pharetra convallis posuere morbi leo
urna molestie. In hendrerit gravida rutrum quisque non. Nunc aliquet
bibendum enim facilisis gravida neque. Diam ut venenatis tellus in metus
vulputate eu. Elementum facilisis leo vel fringilla est ullamcorper eget.
Et ligula ullamcorper malesuada proin libero. Erat velit scelerisque in
dictum.
a. In kích thước (dung lượng) tập tin sample.txt ra màn hình.
import os
stat_info = os.stat("sample.txt")
print("Dung luong la ", stat_info.st_size)
b. Đọc ngẫu nhiên 1 dòng văn bản của tập tin trên.
import random
with open('sample.txt') as f:
lines = f.read().split("\n")
random.shuffle(lines)
print(lines[0])
c. Viết hàm đếm số dòng của tệp trên.
def count_line(fname):
i=0
with open(fname) as f:
for line in f:
i+=1
return i
print("So dong: ", count_line("sample.txt"))
d. Tìm từ dài nhất trong tệp trên.
with open("sample.txt", 'r') as f:
data = f.read().rstrip()
data = data.replace(“\n”, “ “)
print("Tu dai nhat trong van ban la: ", max(data.split(), key=len))
e. In hàng dài nhất trong tệp trên.
longest_line = max(open("sample.txt", 'r'), key=len)
print("Noi dung hang dai nhat: ", longest_line)
f. Đếm số lượng chữ in hoa trong văn bản trên.
c=0
with open("sample.txt", 'r') as f:
data = f.read().rstrip()
for c in data:
if c.isupper():
c +=1
print(“So luong chu in hoa la: ”, c)
g. Ghi chèn một nội dung bất kỳ ở đoạn văn bản trên, và xuất ra màn
hình nội dung văn bản mới.
with open("sample.txt", 'a') as f:
f.write(“test”)
with open("sample.txt", 'r') as f:
data = f.read()
print(data)
6. Cho một văn bản định dạng csv như dưới đây:
Hàng đầu tiên là tiêu đề: thời gian, mã ID, và điểm số. Mỗi cột cách nhau
bằng dấu phẩy.

sample1.txt

time,id,score
2022-05-16,10,9
2022-05-16,5,10
2022-05-17,3,9
2022-05-18,5,10
2022-05-19,10,8
2022-05-19,5,9
2022-05-20,3,10
2022-05-21,2,9
2022-05-22,10,10
a. Tạo thêm một cột là số thứ tự nằm bên trái cột “time", số thứ tự bắt
đầu từ 1, ghi ra một tệp mới.
c=0
stt = []
t = []
ids = []
scores =[]

with open("sample1.txt", "r") as f:


for line in f:
tmp = line.rstrip().split(",")
stt.append(c)
t.append(tmp[0])
ids.append(tmp[1])
scores.append(tmp[2])
c+=1

with open("sample1.txt", "w") as f:


for _, idx, ti, score in zip(stt, t, ids, scores):
if _ == 0:
_ = "stt"
print(','.join(map(str,[_, idx, ti, score])))
txt = ','.join(map(str,[_, idx, ti, score]))
f.writelines(txt+"\n")
b. Kiểm tra có bao nhiêu ID trong tệp sample1.txt.
c=0
stt = []
t = []
ids = []
scores =[]

with open("sample1.txt", "r") as f:


for line in f:
if c ==0:
c+=1
continue
tmp = line.rstrip().split(",")
stt.append(tmp[0])
t.append(tmp[1])
ids.append(tmp[2])
scores.append(tmp[3])
c+=1
print("So luong ID: ", len(set(ids)))
c. Tính điểm (score) trung bình của toàn bộ id.
map_score = list(map(int, scores))
print(“Trung binh la:” , sum(map_score)/len(map_score))
d. Kiểm tra ID nào có điểm bé nhất.
map_score = list(map(int, scores))
idx_score = 0
min_score = map_score[idx_score]
for idx, sc in enumerate(map_score):
if sc < min_score:
min_score = sc
idx_score = idx
print( “ID co diem nho nhat la {}, voi so diem la
{}”.format(int(ids[idx_score]), min_score) )
e. Thêm một hàng sau đây ra tệp sample1.txt và tải lại tệp vừa ghi ra:
2022-05-23,1,9
stt = “11”
with open("sample1.txt", "a") as f:
f.write(stt+"2022-05-23,1,9")
with open("sample1.txt", "r") as f:
data = f.read()
print(data)
7. Cho một tệp văn bản như sau, hãy in thông tin của văn bản ở cả dòng chẳn.

test.txt

0
1
2
3
4
5
6
7
8
9
10
11
12
13
i=0
with open(‘test.txt’, ‘r’) as fi:
for line in fi:
if i%2==0:
print(line.rstrip())
i+=1
8. Viết chương trình ghi một danh sách dưới đây ra một tập tin tên bất kỳ.
color = ['Red', 'Green', 'White', 'Black', 'Pink', 'Yellow']
color = ['Red', 'Green', 'White', 'Black', 'Pink', 'Yellow']
with open('colors', 'w') as f:
for color in colors:
f.write(f"{color}\n")

You might also like