检查文件中的字符是否可以是整数
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")
所以在 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")