我想找到一定长度的字符串-例如7个字符。该字符串只能包含大写字母和数字。我有以下想法:逐行读取文件...
我不确定此处的最佳做法-在一个块中读取整个文件,还是使用循环逐行读取文件?您是否必须使用循环逐行读取文件?
# read lines in text file
filetoread=open("mytextfile.txt)
for lines in filetoread # right ?
#just an example of a given string of text (not from the file)
characters = "D123456"
for x in characters:
if x == "D":
print ("found letter", x)
但是在我的情况下,我不知道在7个字符长的字符串中会出现什么字符,因此我显然无法搜索“ D”。
所以我有主意,我需要读取文件,检查长度为7的字符串(我不确定如何处理文件中的内容,如下所示:
第1行:我的路径=“ 7个字符”(因此,基本上甚至可以找到包含7个包含大写字母和数字的字符的子字符串)>
我不知道,这很简单,但是我认为我不了解其背后的基本逻辑。
我想找到一定长度的字符串-例如7个字符。该字符串只能包含大写字母和数字。我有以下想法:逐行阅读文件...我不确定最好的...
unicode规范中有很多大写字母和数字。本示例将规范文件的每一行,然后检查每个字符的字符类。如果unicode用大写字母表示,则算在内。 (我认为表情符号将没有大写版本...)。
import unicodedata
def string_finder(filename, length=7):
with open(filnname) as fp:
return_chars = []
for line in fp:
line = unicodedata.normalize(line.strip())
for c in line:
category = unicodedata(c)
if "LU" in category or "N" in category:
return_chars.append(c)
if len(return_chars) == length:
return "".join(return_chars)
return None
import re
with open("somefile.txt") as file:
data = file.read()
result = re.findall(r'\b[A-Z0-9]{7}\b', data)
print(result)