我的代码:
with open('pass.txt') as f:
credentials = dict([x.strip().split(':') for x in f.readlines()]) # Created a dictionary with username:password items
name_input = input('Please Enter username: ')
if name_input in credentials: # Check if username is in the credentials dictionary
name_input = input('Please Enter new username: ')
f.write(name_input)
f.write(":")
pass_input = input('Please Enter password: ')
f.write(pass_input)
f.write("\n")
f.close()
print('Registered')
我收到此错误:
Traceback (most recent call last):
File "silwon.py", line 146, in <module>
f.write(name_input)
ValueError: I/O operation on closed file.
用户输入相同的用户名3次后如何使用sys.exit?
Python中的每个文件操作都是在以特定模式打开的文件上完成的。必须将模式指定为open函数的参数,并且该模式确定可以对文件执行的操作以及文件指针的初始位置。
在您的代码中,您打开了文件,除了打开函数的名称之外,没有任何其他参数。如果未指定模式,则以默认模式-只读或打开文件'r'
。这会将文件指针放在文件的开头,使您能够顺序扫描文件的内容,并将它们读入程序中的变量。为了能够将数据写入文件,必须指定一种打开文件的模式,该模式可以将数据写入文件。可以从两个选项'w'
或'w+'
和'a'
或中选择一种合适的模式'a+'
。
'w'
打开文件,并授予用户访问权仅将数据写入文件,而不是从文件中读取数据。还将指针放在文件的开头,并覆盖所有现有数据。'w+'
几乎相同,唯一的区别在于您也可以从文件中读取。
'a'
打开要写入的文件,并将文件指针放在文件的末尾,这样就不会覆盖文件的内容。'a+'
扩展的功能'a'
以允许也读取文件。
使用合适的方式打开文件以适合您的需求,然后通过将open命令修改为来执行该文件open('pass.txt', <mode>)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句