作者ajjj840569 (你爸)
看板Python
标题[问题] 读取并判断档案问题
时间Wed Jan 5 14:41:47 2022
各位前辈好,新手发问:
最近在写登入注册的backend逻辑
有一个method是:
判断帐号名称是否已存在,若不存在则写入使用者输入的帐密等资讯
我有一个已经事先预设一些资料的data user.csv
原本预设是这个档案有东西,所以code如下:
with open('user.csv', "r") as f:
lines = f.readlines()
accounts = [l.split(";;;") for l in lines]
usernames = [accounts[x][1] for x in range(0, len(accounts))]
if username not in usernames:
self.username = username
self.password = encrypt_password(password)
with open(‘user.csv’
,'a') as file:
file.write(f"\n{self.username};;;{self.password}")
result = True
else:
result=False
return result
但是我发现如果我清空这个预设好的档案,这就无法做了
可能是lines那边没有东西的问题
所以多写一个判断式在上面那个if外面
if len(lines)==0:
self.username=username
self.password=self.encrypt_password(password)
with open('user.csv','w' as file:
file.write(f"{self.username};;;{self.password}\n")
result = True
接着写入上面
else:
if username not in usernames:
......
结果发现使用者输入後被写入档案,然後再被判断len(lines)!=0
导致帐号已存在无法注册 result=False
请问该如何解决
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.232.137.113 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1641364909.A.4A7.html
※ 编辑: ajjj840569 (36.232.137.113 台湾), 01/05/2022 14:45:09
1F:推 lycantrope: 你可以先用os.path.exists()来判断要不要create新档案01/05 15:34
2F:→ lycantrope: 接着才append你想要的username01/05 15:34
谢谢 已解决
※ 编辑: ajjj840569 (36.232.137.113 台湾), 01/06/2022 13:45:03
4F:→ leolarrel: 请问是公司派给你的任务吗?01/07 12:53
不是,只是我的作业中的一个method而已
※ 编辑: ajjj840569 (36.232.137.113 台湾), 01/07/2022 14:08:04
5F:→ leolarrel: 了解,谢谢 01/07 18:36