错误
使用python进行txt文本的读取,代码如下:
with open(self.getFileFromSd(DATASET_PATH, "node")) as f:
for l in f:
nl.append(l.rstrip('\n').rstrip())
很奇怪的是,一直报错,提示TypeError: function takes at least 2 arguments (1 given),可是网上查到,open函数只需要一个参数就行。
后来试了下
with open(self.getFileFromSd(DATASET_PATH, "node"),'r') as f:
依然没用,报的错变了,提示 integer is required。
解决方法
后来发现,这是由于自己在程序开头引用了from os import *,os里的open函数的确需要两个参数!
方法一:
修改os的引用方式,改为import os as os,并将其他调用os里函数的地方加上“os.”前缀,如ft = os.path.splitext(f)
方法二:
参考os.open()的使用方法,open()方法语法格式如下:
os.open(file, flags[, mode]);
file – 要打开的文件
flags – 打开选项,可以是以下选项,多个使用 “|” 隔开:
os.O_RDONLY: 以只读的方式打开
os.O_WRONLY: 以只写的方式打开
os.O_RDWR : 以读写的方式打开
参考:Python os.open() 方法
本文探讨了在Python中使用open函数读取txt文本时遇到的TypeError错误,并给出了两种解决方案。一种是更改os模块的引入方式,另一种是采用os.open()函数的正确用法。
3135

被折叠的 条评论
为什么被折叠?



