检查文件中的字符是否可以是整数

Checking if characters in a file can be integers

所以在 Python 作业中,我必须为 mtf 编码文件编写解码器,该文件由十六进制字符和单词组成。在我的解码器中,我正在一个字符一个字符地读取 .mtf 文件,并检查它是一个字母还是一个十六进制数字,但我似乎无法让它工作。我删除了大部分代码以重新开始,但这是基本框架:

f = open(str(sys.argv[1]), "r")
new_f = str(sys.argv[1])
new_f = new_f[:len(new_f)-3]+ "txt"
f_two = open(new_f, "w")
myList = []
word = ""
words = []
index = 0


while True:
    value = None
    c = f.read(1)
    if not c:
        break
    try:
        value = int(c)

    except ValueError:
        word = word + c

我为糟糕的代码和我在写这篇文章时可能犯的任何错误道歉,这对我来说还是比较新的。

谢谢!

当您从 Python 中的文件读取时,您正在读取字符串。字符串也有一种叫做 isdigit() 的方法,它告诉你一个字符是否是数字。

while c:
    c = f.read(1)
    if c.isdigit():
        myList.append(c)

如果您要检查十六进制字符(0-9、A-F),则必须构建自己的检查函数。像这样:

def is_hex(n):
    return n.isdigit() or ("A" <= n.upper() <= "F")