python 作業系統(練習)

2021-09-10 12:12:51 字數 2997 閱讀 5892

京東二面筆試題

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操...