京東二面筆試題
1 生成乙個大檔案ips.txt,要求1200行,
每行隨機為172.25.254.0/24段的ip;
2.讀取ips.txt檔案統計這個檔案中ip出現頻率排前10的ip;
import random
def create_ip_file(filename):
ip = ['172.25.254.' + str(i) for i in range(0,255)]
with open(filename,'a+') as f:
for count in range(1200):
# print(random.sample(ip,1))
f.write(random.sample(ip,1)[0] + '\n')
create_ip_file('ips.txt')
def sorted_by_ip(filename,count=10):
ips_dict = dict()
with open(filename) as f:
for ip in f:
if ip in ips_dict:
ips_dict[ip] += 1
else:
ips_dict[ip] = 1
sorted_ip = sorted(ips_dict.items(),key=lambda x:x[1],reverse=true)[:count]
return sorted_ip
print(sorted_by_ip('ips.txt'))
1.在當前目錄新建目錄img, 裡面包含100個檔案, 100個檔名
各不相同(x4g5.png)
2.將當前img目錄所有以.png結尾的字尾名改為.jpg.
import os
import string
import random
def gen_code(len=4):
# 隨機生成4位的驗證碼
li = random.sample(string.ascii_letters + string.digits, len)
return ''.join(li)
def create_file():
# 隨機生成100個驗證碼
li =
os.mkdir('img')
for name in li:
os.mknod('img/' + name + '.png')
# create_file()
def modify_suffix(dirname, old_suffix, new_suffix):
""":param dirname:操作的目錄
:param old_suffix: 之前的字尾名
:param new_suffix: 新的字尾名
:return:
"""# 1.判斷查詢的目錄是否存在,如果不存在,報錯
if os.path.exists(dirname):
# 2.找出所有以old_suffix(.png)結尾的檔案
pngfile = [filename for filename in os.listdir(dirname) if filename.endswith(old_suffix)]
# 或者用以下的方式
# pngfiles = filter(lambda filename:filename.endswith(old_suffix),os.listdir(dirname))
# 3.將檔名和字尾名分開,留下檔名
basefiles = [os.path.splitext(filename)[0] for filename in pngfile]
print(basefiles)
# 4.檔案重新命名
for filename in basefiles:
#需要加上目錄名
oldname = os.path.join(dirname,filename+old_suffix)
newname = os.path.join(dirname,filename+new_suffix)
os.rename(oldname,newname)
print('%s命名為%s成功' %(oldname,newname))
else:
print('%s不存在,不能操作....' %(dirname))
modify_suffix('img','.jpg','.png')
生成100個mac位址並寫入檔案中,mac位址前6位(16進製制)為01-af-3b
01-af-3b
01-af-3b-xx
01-af-3b-xx-xx
01-af-3b-xx-xx-xx
import random
import string
#隨機生成乙個mac位址
def create_mac():
mac = '01-af-3b'
hex_num = string.hexdigits
for i in range(3):
n = random.sample(hex_num,2)
sn = '-' + ''.join(n).upper()
mac += sn
return mac
# print(create_mac())
#隨機生成100個mac 位址
def main():
with open('mac.txt','w') as f:
for i in range(100):
mac = create_mac()
print(mac)
#每生成乙個mac位址,存入檔案
f.write(mac + '\n')
main()
計算機作業系統 練習
儲存管理的目的是方便使用者和提高記憶體利用率。把作業空間中使用的邏輯位址變為記憶體中的實體地址稱為重定位。分頁系統的頁面是被作業系統所感知的。分頁是由硬體實現的,作業系統感知,使用者不感知 對重定位儲存管理方式,應在整個系統中設定乙個重定位暫存器。頁式儲存管理方法劃分頁面大小必須相同。記憶體的分配是...
使用者管理系統練習 python
userinfor defregister global userinfor name input 請輸入使用者名稱 if name in userinfor 判斷是否被註冊過 print 該使用者名稱已被註冊 else passwd input 請輸入密碼 userinfor name passw...
作業系統練習 緩衝區的寫入 加工 輸出
假設有輸入 加工和輸出3個併發程序共享乙個緩衝區b,輸入程序負責從輸入裝置讀入一條記錄,每讀一條記錄後把它存放在緩衝區b中,加工程序在緩衝區b中加工輸入程序存入的記錄。輸出程序負責把加工後的記錄列印輸出。緩衝區b中每次只能存放一條記錄,當記錄被加工輸出後,緩衝區b中才可存放下 條新記錄。請用p v操...