通过多个项目共享文件和功能

时间:2018-04-23 16:19:13

标签: python

这是一个悬而未决的问题,但请耐心等待。 我正在研究几个项目(主要是用熊猫),我已经创建了标准方法来管理它们:  1.为项目中的所有文件创建一个主文件夹  2.创建一个数据文件夹  3.将所有输出放在另一个文件夹中 等等。

我的主要活动之一是数据清理,为了使其标准化,我创建了一个字典文件,我存储了同一实体的各种翻译,例如:美国,美国,美国等,以便我生成的文件是一致的。

每次创建新项目时,我都会复制数据目录中的字典文件,然后:

xls = pd.ExcelFile(r"data/dictionary.xlsx")
df_area = xls.parse("area")

之后,为了将国家名称翻译成我的标准,我打电话给:

join_column, how_join = "country",  "inner"
df_ct = pd.concat([
    df_ct.merge(df_area, left_on=join_column, right_on="country_name", how=how_join),
    df_ct.merge(df_area, left_on=join_column, right_on="alternative01", how=how_join),

最后我检查一下,我没有输掉错过加入的记录。 一遍又一遍。

我想有办法删除所有这些不必要的剪切和粘贴(文件和代码)。此外,我在第一个项目中使用的文件已经被弃用,我需要在需要处理新数据时更新它们(有时是代码)。有时我也会忘记最新的字典文件在哪里!总的来说,它有很多维护,我相信可能会得到保存。 创建我自己的包是要走的路还是有点过于雄心勃勃? 还有另一条捷径吗?总的来说,它不是很多代码,而是乘以几个项目。

感谢您的任何见解,感谢您的时间。

1 个答案:

答案 0 :(得分:0)

最后我决定创建自己的包。 它需要一些时间,所以我很乐意分享有关该过程的详细信息(我在jupyter和windows上运行python)。

  1. 第一步是决定存储代码的位置。 就我而言,它是C:\ Users \ my_user \ Documents
  2. 您需要将此目录添加到python正在查找包的目录列表中。这是通过以下声明实现的:

    import sys
    sys.path.append("C:\\Users\\my_user\\Documents")
    
  3. 为了在每次启动python时运行上述语句,它必须包含在目录中的文件中(此目录可能因安装而异):

    C:\Users\my_user\.ipython\profile_default\startup
    

    该文件可以命名为" 00-first.py" (" 50-middle.py"或" 99-last.py"也会奏效)

    1. 要验证一切正常,请重新启动python并运行命令:

      print(sys.path)
      

      此时您应该可以看到您的目录。

    2. 在目录中创建一个包名称的文件夹,以及一个子文件夹(我不希望主包文件夹中有代码)

      C:\Users\my_user\Documents\my_package\my_subfolder
      
    3. 放一个名为" _ _init __。py"的空文件。 (请注意,下划线之间应该没有空格,但我不知道如何使用编辑器实现它)在两个文件夹中:my package和my_subfolder。此时您应该已经能够从python导入空包     将my_package导入为my_pack

    4. 在my_subfolder中创建一个文件(my_code.py),它将存储实际代码

      def my_function(name):
          print("Hallo " + name)
      
    5. 修改外部_ _init__.py文件以包含快捷方式。添加以下内容:     来自my_package.my_subfolder.my_code import my_function

    6. 您现在应该可以在python中运行以下命令:     my_pack.my_function("世界"!)

    7. 希望你觉得它很有用!