我是 python 的新手,我正在尝试用逗号 ','
分隔值读取文件的每一行。像这一行:
435,567,897,905,6,56,22,90.
我现有的代码
#!/usr/bin/python
class Line():
def __init__(self, val1, val2, val3, val4, val5, val6, val7, val8):
self.val1 = val1
self.val2 = val2
self.val3 = val3
self.val4 = val4
self.val5 = val5
self.val6 = val6
self.val7 = val7
self.val8 = val8
def display(self):
print("CPU:",self.val1)
file = open("/Users/user/Desktop/data.txt", 'r')
for line in file:
line = line.split(",")
li = str(line)[1:-1]
lin = Line(li)
lin.display()
file.close()
data.txt
如下所示。
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
435,567,897,905,6,56,22,90
请帮助我如何打印第一个值,如 CPU:value。
您需要将每个 line
中的每个项目传递给 Line
构造函数。一种方法是写:
li = Line(line[0], line[1], line[2], line[3], line[4], line[5], line[6], line[7]))
但这是很多写作。 Python 有一个快捷方式:
li = Line(*line)
它会做同样的事情。
不确定您为什么使用 str(line)[1:-1]
...
无论如何,这意味着您的代码可以重写为如下所示,其中还使用 with
语句,该语句将在循环后自动关闭文件:
class Line():
def __init__(self, val1, val2, val3, val4, val5, val6, val7, val8):
self.val1 = val1
self.val2 = val2
self.val3 = val3
self.val4 = val4
self.val5 = val5
self.val6 = val6
self.val7 = val7
self.val8 = val8
def display(self):
print("CPU:", self.val1)
with open("/Users/user/Desktop/data.txt", 'r') as file
for line in file:
line = line.split(",")
lin = Line(*line)
lin.display()
我是一名优秀的程序员,十分优秀!