我当前正在尝试编写一件代码,该代码允许我获取数字文件并能够使用Chr()函数将数字转换为他们的Unicode等效。
这是我到目前为止所拥有的:
readFile = "numbers.txt"
with open(readFile) as f:
num = f.readlines()
print(num)
for x in num[:]:
x = chr(x)
print(x)
打印(num)给了我这个:
['35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,46,100,111,45,34,34,34,34,34,39,45,111,46,46,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10,n',
我将如何读取每条线,然后在新线上而不是同一行上打印它们,因为我有几行,但它们都在一行上输出。此外
Traceback (most recent call last):
File "C:/Users/Ethan/Desktop/EthanWork/Python/Python Projects/Uni
Work/asciiNumToChar/Main.py", line 7, in <module>
x = chr(x)
TypeError: an integer is required (got type str)
如果有人能提供帮助,我会非常感谢它,如果您从不直接告诉我答案,我会很感激,因为我试图学习是否可以指出我的方向,以便我自己解决它,我会是非常感谢。
谢谢
- 创建一个
list
来存储值 -
split
by,
分别获取值 - 将列表中的每个
str
转换为int
- 在
list
上迭代以获取char
Equi
nubmess.txt :
35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,46,100,111,45,34,34,34,34,34,39,45,111,46,46,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,10
因此:
readFile = "numbers.txt"
numList = []
with open(readFile) as f:
lines = f.readline()
for line in lines.split(","):
# print(line)
numList.append(line)
for x in numList:
print(chr(int(x)))
输出:
#
#
#
#
#
.
.
.
d
o
-
.
.
edit(shorter ver):
readFile = "numbers.txt"
numList = []
chr_list = []
with open(readFile) as f:
lines = f.readline()
for line in lines.split(","):
numList.append(line)
chr_list.append(chr(int(line)))
print(numList)
print(chr_list)
输出:
['35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '46', '100', '111', '45', '34', '34', '34', '34', '34', '39', '45', '111', '46', '46', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '35', '10n']
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '.', 'd', 'o', '-', '"', '"', '"', '"', '"', "'", '-', 'o', '.', '.', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', 'n']
编辑2 :
如果要将每个值映射到其char
EQVUI (key : val)
,则可能是dict
方法很有用:
dict_ = {}
with open(readFile) as f:
lines = f.readline()
for line in lines.split(","):
dict_[line] = chr(int(line))
print(dict_)
输出:
{'35': '#', '46': '.', '100': 'd', '111': 'o', '45': '-', '34': '"', '39': "'", '10n': 'n'}