如何更好地编写函数逻辑?

问题描述 投票:0回答:1

我觉得这个逻辑可以改进

# 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
和调用。或者说好看吗?

python
1个回答
0
投票

您的代码看起来不错,但有更简单的方法来编写它。例如;

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()
© www.soinside.com 2019 - 2024. All rights reserved.