Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

在使用git的过程中我方了(对错误的文件使用git checkout --),我一不小心删除了自己刚写的代码...不过这个代码还作为一个进程在一个docker容器中运行着。接下来我要讲讲我是如何找回代码的:我使用了https://pypi.python.org/pypi/pyrasite/和https://pypi.python.org/pypi/uncompyle6。

将一个Shell附着到Docker容器上

安装GDB(pyrasite需要)apt-get update && apt-get install gdb

安装pyrasite,它让你能够跟正在运行的进程通信pip install pyrasite

安装uncomplyle6,它能让你获取内存中存在的对象的源代码pip install uncompyle6

找到正在运行的进程的PIDps aux | grep python

使用pyrasite附着一个交互提示符pyrasite-shell

现在你在交互终端中了,导入你要恢复的代码>>> from my_package import my_module

找出你需要恢复的函数和类>>> dir(my_module)

['MyClass', 'my_function']

把函数源代码提取出来>>> import uncompyle6

>>> import sys

>>> uncompyle6.main.uncompyle(

2.7, my_module.my_function.func_code, sys.stdout

)

# uncompyle6 version 2.9.10

# Python bytecode 2.7

# Decompiled from: Python 2.7.12 (default, Nov 19 2016, 06:48:10)

# [GCC 5.4.0 20160609]

# Embedded file name: /srv/my_package/my_module.py

function_body = "appears here"

对于类,你需要逐个提取每一个方法的文档>>> uncompyle6.main.uncompyle(

2.7, my_module.MyClass.my_method.im_func.func_code, sys.stdout

)

# uncompyle6 version 2.9.10

# Python bytecode 2.7

# Decompiled from: Python 2.7.12 (default, Nov 19 2016, 06:48:10)

# [GCC 5.4.0 20160609]

# Embedded file name: /srv/my_package/my_module.py

class_method_body = "appears here"

英文原文:http://www.infoworld.com/article/3175649/analytics/facebook-open-sources-its-prophet-forecasting-tools-for-python-and-r.html

译者:诗书塞外

python怎么将删的代码恢复_找回丢失的Python代码--如果代码还驻留在内存中相关推荐

  1. android 通过短信找回密码,如何通过强力安卓恢复精灵找回丢失的手机短信?

    原标题:如何通过强力安卓恢复精灵找回丢失的手机短信? 在这纷杂的生活中,我们很少能享受宁静的时光,尤其生活在都市里的男男女女,工作日忙工作,休息日也不见得休息,可能会有加班也可能会有其他的私事要处理, ...

  2. python考试代码复制_笨办法学Python 习题 26: 恭喜你,现在可以考试了! 错误代码下载链接...

    你已经差不多完成这本书的前半部分了,不过后半部分才是更有趣的.你将学到逻辑,并通过条件判断实现有用的功能. 在你继续学习之前,你有一道试题要做.这道试题很难,因为它需要你修正别人写的代码.当你成为程序 ...

  3. python使用复合语句def创建函数对象_【收藏】Python实用技巧-成为Pythoner必经之路...

    前言 本文主要记录 Python 中一些常用技巧,所描述的是告诉你怎么写才是更好?  如果你并不熟悉Python语法,希望你能在下面代码片段中看到Python的简单.优雅; 如果你象我这样,对 Pyt ...

  4. java 静态代码块_关于Java你不知道的那些事之代码块

    前言 普通代码块:在方法或语句中出现的{},就被称为代码块 静态代码块:静态代码块有且仅加载一次,也就是在这个类被加载至内存的时候 普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执 ...

  5. python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...

    前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)​zhuanlan.zhihu.com ...

  6. python语言有几种编程方式_零基础自学python语言,有哪几种方法?龟叔说:这套教程带你入门...

    第一我要说的是:你应该先了解python语言的起源,这句话对于自学python的小白来说,本身就是耍流氓. 我们从根源上分析这个问题,这个问题是(从零基础如何自学python编程)? 我的提取关键字: ...

  7. python爬虫有学c的必要吗_可以一边学python爬虫一边学c语言吗?

    数据结2113构和算法并不是一门语言,你可以说有了Python 不用5261学C或者4102C++了,但是不能说不需要学数据结构了,因为它是所有语1653言的基础.看你学Python的用途,如果你学P ...

  8. word 代码块_如何优雅的写好 Pythonic 代码?

    (点击上方公众号,可快速关注一起学Python) Python 与其它语言(比如Java或者C++)相比有比较大的区别,其中最大的特点就是非常简洁.如果按照其它语言的思路来写Python代码,则会使得 ...

  9. 大学计算机python编程的函数及作用总结_【转】python 内置函数总结(大部分)...

    python 内置函数大讲堂 python全栈开发,内置函数 1.内置函数 python的内置函数截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python ...

最新文章

  1. virtualbox centos5 分辨率_一种高分辨率、高帧率的LCoS显示芯片设计方法
  2. php 补足字符串,php 数目字或者字符串补全
  3. tensorflow 模型预训练后的参数restore finetuning
  4. 免费公开课 | AI对抗攻防系列专题,今晚7点第一讲
  5. Stark 组件:快速开发神器 —— 自动生成 URL
  6. 第二个一千行总结-数据结构C复习--知识点总结2--五到七章
  7. 如何使用Mybatis-plus
  8. 6种常见的地标识别算法整理和总结
  9. ros melodic控制真实机械臂之urdf模型生成
  10. 关于Linux SHELL 的编程的几个练习(课本182页5-10题)
  11. 阿里云云计算 48 云安全中心
  12. redis 集群常用命令
  13. SQLMAP安装及详解
  14. Hawkeye逃避机制和反调试技术分析
  15. 如何进行自学软件测试?
  16. java方法执行jvm做了什么_JVM 方法到底如何执行
  17. virtualization technology设置
  18. 在linux下使用360随身wifi 2 | 李凡希的blog,在Linux下使用“360随身WiFi 2” | 李凡希的Blog...
  19. 乔治亚大学招收计算机视觉/深度学习/机器人/自动驾驶博士生from 2023 spring
  20. Android 无需root实现apk的静默安装

热门文章

  1. 阿里云备案一般要多久时间?快速通过阿里云APP进行域名备案方法
  2. 苏宁门店数字化白皮书发布 行业数字化进程将再提速
  3. 推荐系统领域对比学习和数据增强论文及代码集锦
  4. allegro 倒圆角
  5. Allegro_Outline,RouteKeepin倒圆角
  6. Mac ps 2021 3D功能无法使用问题,怎么办?
  7. CSS系列之详解overflow
  8. 国庆过了,该审视下自己的生活了
  9. WPS JASPI调试器打开 WPS重要路径
  10. 猫哥教你写爬虫 027--模块介绍