我在将一个 .txt 文件过滤成子列表并将其转换为目录时遇到了一些问题,这与 IT 技术有关。以下是来自 text.txt 的示例:A2.-B4-...C4-.-.D3-..E1.F4..-.G3--.H4....75--...85---..95----.05-----.6.-.-.-,6--..--?6..--..!5..--.
它没有空格或换行符,基本上是一行文本。
A2.- 表示符号 'A' 在摩尔斯电码中有 2 个字符,它们是 .- 等等。
我想做的是将这个长字符串拆分成子列表,然后将它们压缩成一个目录,以便我可以使用它来制作一个摩尔斯电码翻译器。我希望程序能够实现以下功能:创建一个包含键 A、B、C、...、?、. 的列表 keyList,以及另一个包含键值的列表 valueList。
但由于键不全是字母,我在遍历整个文件时遇到了问题。
我尝试过的方法如下:
import re
r = open("text.txt", "r")
ss = r.read()
p = re.compile('\w'+'\w')
keyList = p.findall(ss)
ValueList = p.split(ss)
print(keyList)
print(ValueList)
keyList = ['A2', 'B4', 'C4', 'D3',..., '75', '85', '95', '05']
ValueList = ['', '.-', '-...', '-.-.', '-..', space , !5..--.']
如您所见,valuelist 无法正确分割,因为 '\w'+'\w' 只会匹配字母数字字符。我尝试更改 re.compile 的参数,但没有找到有效的解决方法。有什么帮助吗?re.compile 是最好的方法吗?还是有其他方法可以过滤文本?
编辑:期望/想要的输出:
keyList = ['A','B','C','D',...,'.','?',',']
ValueList = ['.-','-...','-.-.','-..',...,'.-.-.-','..--..','--..--']
A
,B
,..?你能把期望的输出加到问题里吗? - Mazdak