在各种字母/数字的文件中查找PinCode

2024-09-30 16:26:34 发布

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

给一个看似毫无意义的文件数据.txt,编写一个函数findPin(inFile),该函数在文件中返回一个四位数的pin代码。(除pin码外,所有其他字符均为字母)

我知道我应该打开数据文件,然后遍历它,直到遇到一个数字,但我不知道该怎么做。这个数据.txt文件是。。。在

loremipsumdolorsitametconsecteturadipiscingelit
seddoeiusmodtemporincididuntutlaboreetdoloremag
naaliquautenimadminimveniamquisnostrudexercitat
ionullamcolaborisnisiutaliquipexeacommodoconseq
uatduisauteiruredolorinrepre7269henderitinvolup
tatevelitessecillumdoloreeufugiatnullapariature
xcepteursintoccaecatcupidatatnonproidentsuntinc
ulpaquiofficiadeseruntmollitanimidestlaborumqwe

很明显,密码是7269,但我需要帮助。抱歉,我只是一个python初学者,这真的让我绊倒了。在


Tags: 文件数据函数代码txt数据文件字母pin
3条回答

^{}是比循环更健壮的方法,因为提供不同的字符串格式会导致循环失败。在

string = """loremipsumdolorsitametconsecteturadipiscingelit
seddoeiusmodtemporincididuntutlaboreetdoloremag
naaliquautenimadminimveniamquisnostrudexercitat
ionullamcolaborisnisiutaliquipexeacommodoconseq
uatduisauteiruredolorinrepre7269henderitinvolup
tatevelitessecillumdoloreeufugiatnullapariature
xcepteursintoccaecatcupidatatnonproidentsuntinc
ulpaquiofficiadeseruntmollitanimidestlaborumqwe"""

这是在使用regex

^{pr2}$

这提供了一个可以合并的每个数字实例的列表:merged = "".join(result)

下面是一个站点的link,它演示了regex模式匹配的一些常见用法,以供将来使用。在

很少有人记得regex模式,但大多数程序员知道何时使用它们,并知道如何快速搜索正确的模式。在

a = 'abc1234def'
for i in range(len(a)):
    if a[i].isdigit():
        print a[i:i+4]

更新了来自评论的提示。在

使用filter

with open('data.txt', 'r') as f:
    pin_code = ''.join([filter(lambda x: x.isdigit(), line) for line in f])

print(pin_code)
# Output
7269

或者使用re.sub

^{pr2}$

相关问题 更多 >