无法从文件_iotextwrapper中拆分字符串

时间:2018-04-02 20:36:24

标签: python file file-handling

我正在尝试创建一个程序。它在列表“i”中将彩色图像作为.txt文件。现在,虽然我很清楚该怎么做,但我似乎已经陷入了第一道障碍。

outfile = open("output.txt","w")
with open("ColourImage.txt") as infile:
infile.readline() #to prevent first part from taking the strings
infile.strip()
line = float(infile)
while len(line) != 0:
    f.readline()
    print(line)

当我尝试这样做时,我收到错误'_io.TextIOWrapper' object has no attribute 'strip',我不知道为什么。当我尝试删除infile.strip()时,我会TypeError: float() argument must be a string or a number, not '_io.TextIOWrapper'

有问题的文件约为20k行,每行包含5个用逗号分隔的数字,例如:

Picture
61, 149, 207, 152, 59
120, 161, 48, 30, 44
77, 132, 16, 13, 30
17, 84, 124, 96, 46
115, 169, 37, 20, 38
70, 33, 88, 62, 37
122, 110, 80, 48, 63
63, 137, 31, 28, 47

我试图操作的文件中的第一行是一个字符串。其余的后续行是5个数字

2 个答案:

答案 0 :(得分:0)

假设您的文件如下所示:

Picture 
61, 149, 207, 152, 59 

执行以下代码:

with open("ColourImage.txt") as infile:
    infile.readline()
    line = infile.readline().strip()
    print(line)
    list_of_strings = line.split(", ") 
    print(list_of_strings)
    list_of_floats = [float(a) for a in list_of_strings]
    print(list_of_floats)

输出是:

61, 149, 207, 152, 59
['61', '149', '207', '152', '59']
[61.0, 149.0, 207.0, 152.0, 59.0]

答案 1 :(得分:0)

尝试: line = float(infile.readline().strip()) 您的代码不能保存内联所发生的情况。只需操纵它而不保存结果。当然,如果您在float()之类的字符串上调用"45, 96, 50"而不分割,,您仍会遇到问题。