![](/img/trans.png)
[英]How to print line number of error that is inside a function using except in Python?
[英]Python print line number in random function
我正在尝试从随机行函数中获取行号,该函数从 .txt 文件中读取随机行。 这是随机线函数:
import random
def randomline(self, file1):
with open(file1) as f:
lines = f.readlines()
regel = random.choice(lines)
return regel
我想知道如何获得行号(我的意思是 .txt 中的第 6 行将返回 6 而不是该行上的单词)。
您可以生成与您的行具有相同长度的整数列表,并在此使用随机选择:
def randomline(self, file1):
with open(file1) as f:
lines = f.readlines()
indices = range(len(lines))
index = random.choice(indices)
return index, lines[index]
使用 enumerate 生成行号和内容的元组并返回两者:
import random
def randomline(file1):
with open(file1) as f:
nums_and_lines = list((num, line) for num, line in enumerate(f))
regel = random.choice(nums_and_lines)
return regel
randomline('test.py')
# (7, ' metavar="filename\\(s\\)",\n')
您只需要知道您的文件中有多少行,然后您就可以使用 random 函数获得一个介于 1 和文件行数之间的随机数。
import random
def random_line(file_name):
return random.randint(1, sum(1 for line in open(file_name)))
如果您不关心行上的实际内容,您只需在 1 和文件中的行数之间选择一个随机数。
此外,函数不需要是类方法,因为它不使用类的任何属性。
import random
def randomline(file1):
with open(file1) as f:
lines = f.readlines()
return random.randint(1, len(lines))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.