首页 > 编程语言 >在python文件操作中使用writelines()函数却报write()函数使用错误

在python文件操作中使用writelines()函数却报write()函数使用错误

时间:2023-07-31 17:33:13浏览次数:36  
标签:file writelines 函数 python 列表 报错 str

代码是这样的:


1 def func1():
2     file = open("test.txt", "a+", encoding="utf-8")
3     list1 = [("20", "10")]
4     list2 = [{"name": "Tom", "age": 20}]
5     file.writelines(list1)
6     file.writelines(list2)
7     file.close() 

下面是报错信息

 报错显示第六行,明明使用的是writelines()函数确报write()错误,不能传元组,只能是str。但是使用的是writelines()传参数是列表没有问题但还是报错,经过网络查询算是找到了原因,writelines()函数确实是接收列表参数但是对这个列表参数是有要求的,列表要是str类型元素组成的列表,其他类型就会报错

下面是该函数定义说明位置

    def writelines(self, lines: List[AnyStr]) -> None:
        pass
  # List[AnyStr] 就是说明列表中的元素是要是str型
 

所以上面传递的列表list1和list2,里面元素是元组和字典构成的就会报错,而把里面的元素类型转化一下就可以通过了

 1 def func2():
 2     file = open("test.txt", "a+", encoding="utf-8")
 3     list1 = [("20", "10")]
 4     list2 = [{"name": "Tom", "age": 20}]
 5     for i in list1:
 6         file.writelines(str(i)+"\n")   # 把列表中的元组转换成str
 7     for i in list2:
 8         file.writelines(str(i)+"\n")  #把列表中的字典转换成str
 9  file.seek(0,0) 10 list3=file.readlines() 11 for i in list3: 12 print(i[0:-1]) 13 print(list3) 14  file.close() 15 16 if __name__=="__main__": 17 func2()

在文件写入的时候遍历,将列表中的元素转换成str型就可以正常写入了输出结果了

 而为什么会报write()的错误,应该就是在查询的时候,一位网友猜测说的原因是writelines()方法内部是通过write()实现功能的,所以在writelines()传递进列表参数,给函数体内的write()函数,在循环遍历分解拿到的是其他类型,而不是str时当然会报错,而python报错位置只会定义到外部的函数,而不会定义到内置函数内部实现细节里面,所报了似是而非,令人不解的错误

标签:file,writelines,函数,python,列表,报错,str
From: https://www.cnblogs.com/cshu21/p/17593999.html

相关文章

  • 安装python以及常用库
    1. 去官网下载python,并安装,笔者版本3.11.4。【安装完毕后建议重启编译器和控制台,以确保导入了最新的环境变量】2. 设置镜像,加快pip3的下载速度。pip3configsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple3. 安装numpy等  pip3installnum......
  • MegEngine Python 层模块串讲(下)
    在前面的文章中,我们简单介绍了在 MegEngineimperative 中的各模块以及它们的作用。对于新用户而言可能不太了解各个模块的使用方法,对于模块的结构和原理也是一头雾水。Python 作为现在深度学习领域的主流编程语言,其相关的模块自然也是深度学习框架的重中之重。模块串讲将对 ......
  • 【wordpress开发必备】新增必填字段相关函数和钩子,适用6.1版本
    当表单包含多个必填字段时,它们的标签可能带有一个带有图例的星号,以说明这些字段是必填的。为了减少代码重复并帮助维护全局一致的标记,WordPress有两个新函数:wp_required_field_indicator()和wp_required_field_message()。如果主题和插件至少需要 WordPress6.1,它们也可以使用这......
  • 【Python&目标识别】Labelimg标记深度学习(yolo)样本
    ​    人工智能、ai、深度学习已经火了很长一段时间了,但是还有很多小伙伴没有接触到这个行业,但大家应该多多少少听过,网上有些兼职就是拿电脑拉拉框、数据标注啥的,其实这就是在标记样本,供计算机去学习。所以今天跟大家分享下如何使用Labelimg去自己标记深度学习样本。......
  • 【Python】一键提取inp文件结构的脚本
    inp=input("输入文件路径:")#print(type(inp))ex_txt=inp+'-Struct.inp'inp=inp+'.inp'importref2=open(ex_txt,'w')withopen(inp,'r',encoding="utf-8")asf1:row_num=0foriinf1:......
  • Python 导入function和导入moudle的区别
    以pprint为例导入moudleimportpprint同比C#创建对象,可以通过moudle名访问其中定义的变量、函数、类是长期过程会将moudle定义加载到内存中,整个程序执行过程中均可使用访问方法moudleName.functionNamepprint.pprint(data)导入functionfrompprintimportpprint......
  • python 比较两个excel A有b没有
    importpandasaspd#读取第一个Excel文件df1=pd.read_excel('excel_file1.xlsx')#读取第二个Excel文件df2=pd.read_excel('excel_file2.xlsx')#找出在df1中存在但不在df2中的行missing_rows=df1[~df1['列名'].isin(df2['列名'])]#保存缺失的数据到新的E......
  • Python去除文本中的NUL(0x00)字符
    问题描述在python中将文本数据存储到PostgreSQL数据库中报以下错误ValueError:AstringliteralcannotcontainNUL(0x00)characters.原因PostgreSQL不支持在文本字段中存储NULL(0x00)字符(这与支持文本中带有NULL值的数据库显然不同)。如果需要存储NULL字符,则可以使用byt......
  • 秋叶整合包如何安装Python包
    前几天写了一篇《手把手教你在本机安装StableDiffusion秋叶整合包》的文章,有同学运行时遇到缺少PythonModule的问题,帮助他处理了一下,今天把这个经验分享给大家,希望能帮助到更多的同学。有时候启动某些插件的时候会出现ModuleNotFoundError的提示,类似下图这样:这时候就需要......
  • url函数的使用,无名分组和有名分组,反向解析,django2中5种转换器,路由分发,伪静态的概
    url函数的使用(支持正则表达式)#django1中使用的是urlurl('test',views.test),url函数的第一个参数是支持正则表达式的如果匹配到一个路由,就不在往下匹配,直接执行路由对应的视图函数#http://127.0.0.1:8000/test/是django默认设置的,django会先拿着test去匹配,如果匹配不......