【问题标题】:Extract functions from python file and write them to other files从python文件中提取函数并将它们写入其他文件
【发布时间】:2015-04-14 08:19:16
【问题描述】:

我编写了一个包含很多函数的 python 文件,我决定将它们全部拆分为不同的文件,并使用它们的名称和相同的导入。

代码如下所示:

import....

class TestExtractors(unittest.TestCase):

    def test_icloud(self):...
    def test_gogoair(self):...
    def test_touchofmodern(self):...

我在同一个文件中有超过 100 个函数,所以它变得太长了。我想将每个函数拆分为具有相同importclass TestExtractor(unittest.TestCase): 的文件 我希望文件名是函数的名称(不带(self))。

感谢您的建议!

【问题讨论】:

  • 由于这些函数是类的一部分,你不能真正将它们移到别处。你到底想做什么?
  • 嘿 Riko,我不介意重新复制课程,这些功能没有相互联系,它们不需要彼此工作。他们只需要TestExtractors 类。所以每个文件都应该包含importclassdef
  • 好的。因此,如果我理解正确,您想编写自动执行此操作的脚本吗?
  • 这正是我要找的
  • 我明白了。谢谢你的澄清。一会儿写答案。

标签: python function file testing split


【解决方案1】:

制作新脚本“split.py”之类的。这个脚本应该这样做:

1) 以字符串形式打开上述文件。 How do I read a text file into a string variable in Python

2) 使用参数“ def ”拆分。现在您将拥有字符串列表,让我们调用该列表 L。

3) 忽略 L 中的第一个元素并遍历所有其他元素。

4) 对于每个字符串,我们称它为 S,打开新文件并写入:

import....

class TestExtractors(unittest.TestCase):

下面写字符串S。

如果我需要澄清任何步骤,请告诉我。

【讨论】:

  • 我如何通过def 告诉open().split
  • 好的,我设法做到了。但我不知道如何使脚本名称像函数一样。
  • 为此,您需要解析该字符串 S。如果您只需使用 .find 找到第一个“(”的索引,就可以获得名称。
  • with open ("laknertest.py") as myfile: data=myfile.read().replace('\n', '') l=data.split('def') for s in l[1:]: with open("/home/superfly/Documents/split/{0}.html".format(s),"w") as f: f.write(s) 想出了这个,不知道怎么继续
  • 你是对的。稍微玩一下代码,你就会解决它:)
猜你喜欢
  • 2021-05-05
  • 2015-06-26
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 2017-10-29
相关资源
最近更新 更多