因此,在Python分配中,我必须为mtf编码文件编写解码器,该文件由十六进制字符和单词组成。在我的解码器中,我通过char读取.mtf文件char并检查它是否是一个字母或十六进制数,而我似乎无法使其工作。我已经删除了我的大部分代码以重新开始,但这是基本框架:
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
我为可怕的编写代码以及我写这篇文章时可能犯的任何错误道歉,这对我来说还是比较新的。
谢谢!
答案 0 :(得分:1)
当您从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")