# 寫,末尾追加,指標到最後# +表示同時可以讀寫,b表示已位元組的方式操作
f = open("h.txt","r+")# r+最前,a+最後
# w+,先清空,在寫之後,可以讀,x+和w+一樣,x+額外有如果檔案存在,報錯
f.seek(0)
# 指標回到初始
print(f.tell())#獲取指標位置
d = f.read(1)
print(d)
f.write("")#寫到記憶體,不關閉不寫入
f.flush()#強行執行,寫到硬碟。
f.truncate()#截斷資料,僅保留指標之前
f.readline()# 只讀取一行,for line in f :line也是一行一行讀,讀取所有行
f.close()
# with2.7之後支援同時開啟兩個檔案
with open("h.txt","r") as obj1 ,open("new_h.txt","w") as obj2:
for line in obj1:
# 實現大檔案(記憶體不足),一行一行寫到新檔案中,
obj2.write(line)
# 沒有關閉檔案之前,指標保持不動
def x():
# x代指函式,x()執行函式,函式可以做引數
pass
"""def login(username, password):
"""用於使用者名稱和密碼的驗證
:param username: 使用者名稱
:param password: 密碼
:return: true正確,false錯誤
"""with open("h.txt","r",encoding="utf-8") as f:
for line in f:
# strip預設無引數,移除空格,換行符。有引數則移除兩側的值
line = line.strip()
line_list = line.split("$")
if username == line_list[0] and password ==line_list[1]:
return true
return false
def register(username,password):
"""註冊
:param username:使用者名稱
:param password:密碼
:return:true成功
"""with open("h.txt","a",encoding="utf-8") as f:
f.write("\n"+username+"$"+password)
return true
def user_exist(username):
"""檢查使用者名稱是否存在
:param username: 使用者名稱
:return: true存在,false不存在
"""with open("h.txt","r",encoding="utf-8") as f:
# 無論以任何方式結束with語句,python都會自動關閉檔案.(執行__exit__,close)
for line in f:
# 字串操作是賦值,原字串不改變
line = line.strip()
line_list = line.split("$")
if username == line_list[0]:
return true
return false
def del_user(username):
"""刪除使用者
:param username: 使用者名稱
:return: true
"""with open("h.txt","r+",encoding="utf-8") as f1,open("new_h.txt","w+",encoding="utf-8") as f2:
for line in f1:
line = line.strip()
line_list = line.split("$")
if line_list[0] != username:
f2.write(line+"\n")
with open("h.txt","w+",encoding="utf-8") as f1,open("new_h.txt","r+",encoding="utf-8") as f2:
for line2 in f2:
f1.write(line2)
return true
def revise_pwd(username,newpwd):
"""修改密碼
:param username: 使用者名稱
:param newpwd: 新密碼
:return: true
"""with open("h.txt","r+",encoding="utf-8") as f1,open("new_h.txt","w+",encoding="utf-8") as f2:
for line in f1:
line = line.strip()
line_list = line.split("$")
if line_list[0] == username:
line = line.replace(line_list[1],newpwd)
f2.write(line+"\n")
else:
f2.write(line + "\n")
with open("h.txt","w+",encoding="utf-8") as f1,open("new_h.txt","r+",encoding="utf-8") as f2:
for line2 in f2:
f1.write(line2)
return true
def main():
print("歡迎登陸xx系統")
inp = input("請輸入(1:登陸;2:註冊;3:刪除使用者;4:修改密碼):")
if inp == "1":
user = input("使用者名稱:")
pwd = input("密碼:")
is_login = login(user,pwd)
if is_login :
print("登陸成功")
else:
print("登陸失敗")
elif inp == "2":
user = input("使用者名稱:")
is_exist = user_exist(user)
if is_exist:
print("使用者名稱存在")
else:
pwd = input("密碼:")
result = register(user,pwd)
if result:
print("註冊成功")
else:
print("註冊失敗")
elif inp == "3":
user = input("使用者名稱:")
pwd = input("密碼:")
is_login = login(user,pwd)
if is_login:
del_user(user)
print("刪除成功")
else:
print("賬號密碼錯誤")
elif inp == "4":
user = input("使用者名稱:")
pwd = input("密碼:")
is_login = login(user,pwd)
if is_login:
new_pwd = input("新密碼:")
is_revise = revise_pwd(user,new_pwd)
if is_revise:
print("修改成功")
else:
print("賬號密碼錯誤")
main()
# 氣泡排序
li = [11,22,33,44]
temp = li[1]
li[1] = li[2]
li[2] = temp
print(li)
li = [4,77,44,6,1]
for j in range(1,len(li)):
#len(li)=5
#j=1,2,3,4
for i in range(len(li)-j):
#i = 0,1,2,3
# current = li[i]
# next_values = li[i+1]
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i + 1]
li[i + 1] = temp
print(li)
Ldap使用者無法登陸作業系統
我的機器的作業系統是redhat6.8,ip為 172.10.54.19 遠端有一台ldap服務,在這台機器上使用authconfig tui命令配置ldap客戶端,1 使用id命令,發現可以正常的找到ldap使用者 jiang 2 使用root使用者su jiang 也能正常切換到jiang使用者...
檔案操作 公升級使用者登陸介面
1 新增使用者和密碼到passwd檔案中 cat add user.py 將幾個使用者密碼寫進passwd檔案,使用者登陸認證的時候讀取此檔案 f open passwd w encoding utf 8 f.write zhangsan 123456 n f.write qiaofeng abc1...
禁止作業系統驗證登陸資料庫
作業系統認證方式登入 資料庫的含義是 只要是以oracle使用者登入的使用者都可以使用 sqlplus as sysdba 方式連線到資料庫中。出於安全的考慮,我們可能需要禁用這個特性。當然,如果以作業系統認證方式無法順利登入,也可以通過在這個方法來排查故障問題。1.以作業系統認證方式登入資料庫的方...