为什么我的代码没有正确附加到现有文件中?

时间:2016-03-17 19:50:46

标签: python-3.x

当我运行我的代码时,没有语法错误,但它没有附加到文件中。基本上,用户输入他们的类和名称(虽然这出现在程序的开头),程序制定文件夹名称和文件名 - 文件名是用户的名字。然后程序在相应的文件夹中检查是否存在同名的现有文件。如果没有,程序将在正确的文件夹中创建一个文件并写入用户的分数。下次同一个用户运行程序时,应该找到该文件。 Python确实输出“找到文件”,但用户的第二个分数未附加到文件中。有关如何解决此问题的任何帮助吗?

感谢所有帮助,谢谢

Class_number = (input("Please enter your class: "))
score = (input("Please enter your score: "))

Folder = ("Class" + (Class_number))
File_name = (Name) + ".txt"
path = os.path.join("/Computing/a453/Task 3/",(Folder),(File_name))
if os.path.exists(path):
    print("File found")
    file = open((File_name), "a")
    file.write((score) + "\n")
    file.close()
else:
    print("File not found. Creating file")
    CompleteFile = os.path.join(Folder, File_name)         
    file = open(CompleteFile, "w")
    file.write((score) + "\n")
    file.close()

1 个答案:

答案 0 :(得分:0)

简短回答

您正在检查文件是否存在于子文件夹中。如果它不存在,则在所需文件夹中创建一个新文件并添加第一个分数。如果文件存在,则打开另一个文件!在第二种情况下,打开调用只使用不带文件夹(@Builder() @Getter @ToString public class Person { private final String name; private final String surname; public static PersonBuilder builder(String name){ return new PersonBuilder().name(name); } public static void main(String[] args) { Person p = Person.builder("John Doe") .surname("Bill") .build(); } } )的文件名,而不是整个路径({{ 1}})。

进一步阅读

是否有特殊原因要确定文件是否存在?使用open(File_name, "a")模式open(CompleteFile, "w")将创建该文件(如果该文件不存在)并附加到该文件(如果存在)。

注意: open不会为您创建丢失的文件夹!

此外,我建议使用Python的a语句(请参阅this教程),因为即使引发异常,它也会关闭文件。

将上述所有内容结合起来,你的程序最终会像这样:

open

一般情况下,请查看您的Python参考资料。正如有人在评论中告诉你的那样,有很多不必要的括号,命名变量的风格并不是真的一致(看看Python"官方/推荐" {{3} })。

有很好的在线资源可以向您展示Python的基础知识。我个人非常喜欢通过naming conventions学习(它完全免费)。