当我运行我的代码时,没有语法错误,但它没有附加到文件中。基本上,用户输入他们的类和名称(虽然这出现在程序的开头),程序制定文件夹名称和文件名 - 文件名是用户的名字。然后程序在相应的文件夹中检查是否存在同名的现有文件。如果没有,程序将在正确的文件夹中创建一个文件并写入用户的分数。下次同一个用户运行程序时,应该找到该文件。 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()
答案 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学习(它完全免费)。