将 findall 返回的字符串元组中的值转换为 int
Convert values in string tuple returned by findall to int
我正在阅读 unix 目录列表并想使用正则表达式提取文件大小、月份、日期、小时、分钟和文件名。
-rwxr-xr-x 1 jttoivon hyad-all 2356 Dec 11 11:50 add_colab_link.py
-rw-r--r-- 1 jttoivon hyad-all 164519 Dec 28 17:59 basics.ipynb
我正在使用 findall,它工作正常,除了它 returns 包含所有字符串的元组。我想将整数值转换为元组中的 int 存储。我该怎么做?
def file_listing(filename="listing.txt"):
list1=[]
regex=re.compile("(\d+)\s(\w{3})\s+(\d{1,})\s(\d{2}):(\d{2})\s(\w*[.]?\w*)")
with open(filename, "r") as f:
for line in f: # iterates through all the lines in the file
list1.extend(regex.findall(line))
代码生成('2356', 'Dec', '11', '11', '50', 'add_colab_link.py')
但我需要的是 (2356, 'Dec', 11, 11, 50, 'add_colab_link.py')
即整数值作为整数而不是字符串
对元组中应为整数的元素调用 int()
。
with open(filename, "r") as f:
for line in f:
size, month, day, hour, minute, name = regex.search(line).groups()
list1.append((int(size), month, int(day), int(hour), int(minute), name))
我正在阅读 unix 目录列表并想使用正则表达式提取文件大小、月份、日期、小时、分钟和文件名。
-rwxr-xr-x 1 jttoivon hyad-all 2356 Dec 11 11:50 add_colab_link.py
-rw-r--r-- 1 jttoivon hyad-all 164519 Dec 28 17:59 basics.ipynb
我正在使用 findall,它工作正常,除了它 returns 包含所有字符串的元组。我想将整数值转换为元组中的 int 存储。我该怎么做?
def file_listing(filename="listing.txt"):
list1=[]
regex=re.compile("(\d+)\s(\w{3})\s+(\d{1,})\s(\d{2}):(\d{2})\s(\w*[.]?\w*)")
with open(filename, "r") as f:
for line in f: # iterates through all the lines in the file
list1.extend(regex.findall(line))
代码生成('2356', 'Dec', '11', '11', '50', 'add_colab_link.py')
但我需要的是 (2356, 'Dec', 11, 11, 50, 'add_colab_link.py')
即整数值作为整数而不是字符串
对元组中应为整数的元素调用 int()
。
with open(filename, "r") as f:
for line in f:
size, month, day, hour, minute, name = regex.search(line).groups()
list1.append((int(size), month, int(day), int(hour), int(minute), name))