由于Python Docs明确指出platform.linux_distribution():
从版本3.5开始不推荐使用,将在3.7版中删除.
通过Python检测Linux发行版的正确和面向未来的方法是什么?
好的,所以我有多个文本文件,每个文件包含超过500.000甚至1.000.000行.
目前我这样做:
import random
def line_function(line):
# Do something with given line
def random_itteration(filepath):
with open(filepath) as f:
lines = f.readlines()
random.shuffle(lines)
for line in lines:
result = line_function(line)
Run Code Online (Sandbox Code Playgroud)
问题是,在Python的文件上random.shuffle()清楚地状态(我加的):
注意,即使对于小len(x),x的排列总数也可以快速增长,大于大多数随机数生成器的周期.这意味着永远不会产生长序列的大多数排列.例如,长度为2080的序列是可以在Mersenne Twister随机数生成器的周期内拟合的最大序列.
所以问题是:
什么是使我的设置按预期工作的最快和最有效的方法?
更多信息:
我有理由将line_function()应用于随机行,而不是简单地按照它们所处的顺序迭代它们.另请注意,我更倾向于只处理每一行一次.
最后,不幸的是,将文本文件预先混洗或将其分成较小的文件是不可取的.而不是我要问的.
任何见解都更受欢迎!Thnx提前了.
我有 2 个用 python 编写的文件。main.py 看起来像这样:
import cats
class Dog():
def __init__(self, name):
self.name = name
def talk(self):
print("My name is "+self.name)
dog = Dog("Boxer")
cats.cat.talk()
Run Code Online (Sandbox Code Playgroud)
和 cats.py 看起来像这样:
class Cat():
def __init__(self, name):
self.name = name
def talk(self):
print("my name is "+self.name)
def MakeDogTalk(self):
dog.talk()
cat = Cat("pus")
cat.MakeDogTalk()
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我正在尝试让狗从猫模块中说话,有什么方法可以实现这一点吗?顺便说一句,我的现实世界应用程序看起来一点也不像这个......当然,现在我收到此错误:
line 9, in MakeDogTalk
dog.talk()
NameError: name 'dog' is not defined
Run Code Online (Sandbox Code Playgroud)