我创建了一个文本文件,并使用以下命令在Python中打开它:
for word_in_line in open("test.txt"):
循环播放txt文件中一行中的单词。
文本文件只有一行,即:
int 111 = 3 ;
当我使用.split()
制作列表时:
print("Input: {}".format(word_in_line))
line_list = word_in_line.split()
它创建:
['int', '111', '=', '3', ';']
我正在寻找一种方法来检查line_list[1]
('111'
)是否为整数。
但是,当我尝试type(line_list[1])
时,由于str
,它会说''
。
我的目标是通读txt文件并查看它是整数还是str或其他数据类型等。
答案 0 :(得分:5)
列表中的内容是一个字符串。所以类型的来临是正确和预期的。
您要做的是检查您的字符串中是否包含所有数字。所以要使用isdigit字符串方法:
line_list[1].isdigit()
根据您在此处尝试验证的确切内容,有些情况下您只需要纯数字,此解决方案就是这样。
可能还有其他情况需要检查您是否有某种号码。例如,10.5
。这是isdigit
失败的地方。对于这样的情况,您可以查看this答案,该答案提供了一种方法来检查您是否有float
答案 1 :(得分:2)
我不同意上述答案。
任何字符串解析如@ idjaw的line_list[1].isdigit()
答案都会在奇数边缘情况下失败。例如,如果数字是浮点数并且类似.50并以点开头怎么办?上述方法不起作用。从技术上讲,我们只关心这个例子中的int,所以这没关系,但总的来说它很危险。
通常,如果您要检查字符串是否为有效数字,最好只尝试将字符串转换为数字,然后相应地处理错误。
def isNumber(string):
try:
val = int(string)
return True
except ValueError:
return False