【发布时间】:2019-05-29 16:26:41
【问题描述】:
我正在编写 python 中的代码,其中文件的一个特定行中有两个单独的值。我想将它们作为单独的部分检索到 matplotlib 的列表中。这是我到目前为止的代码:
with open('data.txt') as data_file:
def process(line):
line = line.rstrip(data_file)
line = line.split('.')[1]
line = line.split(',')
return line
x = list()
y = list()
counter = 0
for line in data_file:
if (counter == 3) or (counter == 4):
result = process(line)
x.append(int(result[0]))
y.append(int(result[1]))
counter += 1
print(x)
print(y)
错误是说:
line = line.rstrip(data_file)
TypeError: rstrip arg must be None or str
一个示例文件是:
hi
hi
67, 78
2345, 45677
谁能帮我解决这个错误,或者提供更好的方法来达到同样的结果。任何帮助表示赞赏!
非常感谢!
【问题讨论】:
-
为什么
line = line.rstrip(data_file)行中有参数data_file? -
@Xteven 我认为
line = line.rstrip()需要引用文件来剥离行 -
rstrip是属于 Python 中任何字符串对象的方法,它接受字符串的可选参数(其中包含要删除的字符)。更多信息在这里:docs.python.org/3/library/stdtypes.html#str.rstrip -
@Xteven 非常感谢您的帮助!如果可以,我还有一个问题。当我从代码中删除
data_file时,它说line = line.split('.')[1]列表索引超出范围。你知道我该如何解决吗? -
在您的示例文件中,没有一行包含
.字符,这意味着line.split(".")只返回该行中所有内容的列表,因为没有什么可以分割的。返回列表只有一项(无论该行是什么),因此 Python 抱怨试图访问第二项。
标签: python python-3.x macos matplotlib