我觉得这个逻辑可以改进
# check existence of credentials, if it exists rewrite it.
def check_credentials_file(credentials_file):
if os.path.exists(credentials_file):
choice = input("File already found, do you want to rewrite it? y/n: ").lower()
if choice == "y":
os.remove(credentials_file)
return True
else:
print("No new file was created...")
return False
else:
print("Creating new File...")
return True
def create_credentials_file(user, passw, domain, credentials_file):
try:
print(f"{credentials_file}")
with open(credentials_file, "w") as file:
file.write(f"username={user}\n")
file.write(f"password={passw}\n")
file.write(f"domain={domain}\n")
print("File created")
except IOError as error:
print(f"Can't create file: {error}")
def main():
if check_credentials_file(credentials_filepath):
create_credentials_file(
samba_user, samba_pass, samba_domain, credentials_filepath
)
if __name__ == "__main__":
main()
我觉得我绕了很多圈,应该有更好的方法,特别是函数
check_credentials_file
和调用。或者说好看吗?
您的代码看起来不错,但有更简单的方法来编写它。例如;
def create_credentials_file(user, passw, domain, credentials_file):
try:
print(f"{credentials_file}")
if os.path.exists(credentials_file): # File Exists Already
overwrite = input("File already found, do you want to rewrite it? y/n: ").lower() == "y"
if not overwrite: # We Shouldn't Overwrite it
print("File Not Created..")
return
with open(credentials_file, "w") as file: # We don't need to remove the file as the "w" flag will overwrite
# the file anyway. the "a" or append flag will add to the already
# exsiting file
file.write(f"username={user}\n")
file.write(f"password={passw}\n")
file.write(f"domain={domain}\n")
print("File created")
except IOError as error:
print(f"Can't create file: {error}")
def main():
create_credentials_file(
samba_user, samba_pass, samba_domain, credentials_filepath)
if __name__ == "__main__":
main()