如何从文本文件中分离字符串中的字符,python3

2024-04-20 12:18:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一件事的帮助,我应该把文本文件转换成字典。问题是,textfile只是一行,包含了我想要分隔的多个字符。你知道吗

这是文本文件:

A2.-B4-...C4-.-.D3-..E1.F4..-.G3--.H4....I2..J4.---
K3-.-L4.-..M2--N2-.O3---P4.--.Q4--.-R3.-.S3...T1-
U3..-V4...-W3.--X4-..-Y4-.--Z4--..Å5.--.-Ä4.-.-
Ö4---.15.----25..---35...--45....-55.....65-....
75--...85---..95----.05-----.6.-.-.-,6--..--?6..--..!5..--.

行中没有空格!我希望字典中的文件采用以下格式:

'A': '.-'
'B': '-...'

等等。。。你知道吗

我想我可以查一下文件中的数字。如果我遇到一个,我想看看它后面有没有数字。 'A2.-15.-'

如果后面没有数字: 然后我想把数字前面的字符存储为'key',把数字后面相同数量的字符存储为'value'。 'A'='.-'

如果有: 我想将第一个数字存储为'Value',然后存储与下一个数字相同数量的字符(数字后面的字符)

“1”:“.---”

问题是整行都是列表中的一个元素(也是唯一的一个)。所以我不能用索引在字符串中移动。 以下是我目前的代码:

file = open('morse.d.txt')
s = file.read()
l = s.split()
element = l[0]

for char in element:
    if char.isdigit():
        #Check the character after

Tags: 文件a2数量字典数字element字符file
1条回答
网友
1楼 · 发布于 2024-04-20 12:18:14

您可以为此作业使用正则表达式:

In [1]: import re

In [2]: s="""
   ...: A2.-B4-...C4-.-.D3-..E1.F4..-.G3 .H4....I2..J4. -
   ...: K3-.-L4.-..M2 N2-.O3 -P4. .Q4 .-R3.-.S3...T1-
   ...: U3..-V4...-W3. X4-..-Y4-. Z4 ..Å5. .-Ä4.-.-
   ...: Ö4 -.15.  25.. -35... 45....-55.....65-....
   ...: 75 ...85 -..95  .05  -.6.-.-.-,6 .. ?6.. ..!5.. ."""

In [3]: re.findall("([^\.-]+)([\.-]+)", s)
Out[3]: 
[('A2', '.-'),
 ('B4', '-...'),
 ('C4', '-.-.'),
 ('D3', '-..'),
...
 ('6', '.-.-.-'),
 (',6', ' .. '),
 ('?6', '.. ..'),
 ('!5', '.. .')]

把结果传给dict得到字典。你知道吗

相关问题 更多 >