python:ValueError:对已关闭文件的I / O操作 - python

我的代码:

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>)来执行它。

ValueError:无法插入ID,已经存在 - python

我有此数据:ID TIME 1 2 1 4 1 2 2 3 我想按ID对数据进行分组,并计算平均时间和每组的大小。ID MEAN_TIME COUNT 1 2.67 3 2 3.00 1 如果运行此代码,则会收到错误“ValueError:无法插入ID,已经存在”:result = df.groupby(['ID']).agg({…

ValueError:未知标签类型:'未知' - python

我尝试运行以下代码。顺便说一句,我是python和sklearn的新手。import pandas as pd import numpy as np from sklearn.linear_model import LogisticRegression # data import and preparation trainData = pd.read_csv…

ValueError:形状不匹配:无法将对象广播到单个形状 - python

我正在使用SciPy的pearsonr(x,y)方法,但无法弄清为什么发生以下错误: ValueError:形状不匹配:无法将对象广播到单个形状它计算前两个(我正在循环中运行这些测试中的数千个),然后死亡。有人对问题可能有什么想法吗?r_num = n*(np.add.reduce(xm*ym)) 这是发生错误的pearsonr方法中的这一行,我们将不胜感激…

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

openpyxl:ValueError:在关闭的文件上的I / O操作 - python

我使用以下代码将图像logo.png放在logo.xlsx中的单元格A1处:from openpyxl import Workbook from openpyxl.drawing.image import Image wb = Workbook() ws = wb.active img = Image('logo.png') ws.add…