我正在阅读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,它工作正常,除了它返回包含所有字符串的元组。我想将整数值存储为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')
,即整数值是整数而不是字符串
答案 0 :(得分:1)
调用元组中应为整数的元素上的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))