Python';int';对象不可下标-强制转换无法按预期工作
我想读取文件的最后一行,然后获取它的子字符串以将其打印出来 我采取了不同的方法,但都不奏效Python';int';对象不可下标-强制转换无法按预期工作,python,python-3.x,casting,Python,Python 3.x,Casting,我想读取文件的最后一行,然后获取它的子字符串以将其打印出来 我采取了不同的方法,但都不奏效 file_temp = os.system('cat "/myfile.csv"|tail -1') # line looks like that ['08/19/2020 22:30:14', '26.1', '53.2', '82'] test = str(file_temp[25:-16]) print (test) #same for print (file_temp[2])
file_temp = os.system('cat "/myfile.csv"|tail -1')
# line looks like that ['08/19/2020 22:30:14', '26.1', '53.2', '82']
test = str(file_temp[25:-16])
print (test)
#same for
print (file_temp[2])
这将导致以下错误:
temp_test = str(file_temp[25:-16])
TypeError: 'int' object is not subscriptable
无论是否强制转换,它似乎都不起作用。如果要读取文件的最后一行,这是错误的命令。您必须打开文件,读取它,然后获得所需的行:
file_temp = open("/myfile.csv","r")
lines = file_temp.readlines()
file_temp.close()
print(lines[-1])
函数
os.system()
只返回命令的退出状态。这是一个整数值。这意味着变量file_temp
只包含一个整数,指示命令是否成功。这不是一个file.os.system返回int到file_testhx,我会试试。即使我打印(文件)我也能看到预期的结果。最后一行在变量中。问题在于使用该行。当您打印(键入(file_temp))
时会显示什么。也许它是一个更复杂的对象,它不仅包含指示退出状态的整数,而且还包含有关控制台返回的一些信息。你也许可以把它打开,拿到电话线。但是使用open
更为明智,可以在所有平台上使用。