-> filter过滤:
list(filter(lambda x: x[0].find('tmp') == -1, table_temp_r))

-> 自定义map:
def map_format(x):
if(x.find('d_f_') == -1):
return 'd_f_artemis{}_{}'.format(data_f,x)
else:
return x

return list(map(lambda x: map_format(x), tables_p))

-> 字符串EL表达式:
"use {}".format(prod_base)

-> 列表、字典不为空的判断:
if l == []: if m == {}:

-> 字典中查找是否存在key:

test = {}
if 'key' in test.keys():
if 'key' in test:

-> 异常处理:
try:
out_engine.execute("drop table if exists field_diff_database")
out_engine.execute("drop table if exists table_diff_database")
except Exception as e:
raise e

-> 获取时间:
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) #time.time() 是时间戳; time.localtime() 获取时间结构体; time.strftime() 格式化时间

-> IO处理:
pro_file = open(self.filename, 'Ur')
for line in pro_file.readlines():
line = line.strip().replace('\n', '')

字符串切分: 直接用[]
if line.find("#")!=-1:
line=line[0:line.find('#')]

获取文件地址:
path = os.getcwd()
file_path = os.path.join(path,'prod.cfg')

pandas:

data = {'a':[1,2,3],
'c':[4,5,6],
'b':[7,8,9]
}
frame = pd.DataFrame(data,index=['6','7','8'])

frame.iloc[0]   # 获取第一行数据, 根据数据的list索引获取行数据;

frame.loc['6']  # 根据数据的pd索引获取行数据;

frame.a         # 获取列

frame['a']      # 获取列

frame['a'].iloc[0] = 2   # 改变第a列, 第1行的数据;

result_df = pd.read_sql(result_sql, test_engine)

result_df.sort_values(by='branch_company',axis=0,ascending=True,inplace=True)  # axis = 0 按列排序

result_df.to_sql('result_test',test_engine,index=False,if_exists='replace')

部署生产:

if __name__ == '__main__':
main_()

vim cron.txt
*/1 * * * * /data/anaconda/bin/python /home/hadoop/python_task/python_prod/prod.py > /home/hadoop/python_task/python_prod/result.log 2>&1

crontab -r / -l/ cron.txt

#crontab 不能使用os.getcwd() 不准确
path = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(path,'data/prod.cfg')

打包成二进制文件:

# 打包部署
import compileall
compileall.compile_dir(r'D:\python_prod')

# .pyc文件生成在__pycache__目录下
# 进入生产环境, 在相同的python版本下, python prod.pyc 直接运行即可。

需要安装的包:

conda install pymysql

pip install pyspark==2.3.2

python总结 + 部署简单项目 到生产的更多相关文章

  1. 2020最新nginx+gunicorn+supervisor部署基于flask开发的项目的生产环境的详细攻略

    本攻略基于ubuntu1804的版本,服务器用的华为云的服务器,python3(python2已经在2020彻底停止维护了,所以转到python3是必须的)欢迎加我的QQ6398903,或QQ群讨论相 ...

  2. 生产环境部署Django项目

    生产环境部署Django项目 1.  部署架构 IP地址 安装服务 172.16.1.251 nginx uwsgi(sock方式) docker mysql5.7 redis5 Nginx 前端We ...

  3. centos上发布部署python的tornado网站项目完整流程

    先说下大体上的做法,开发环境上要新弄一个 virtualenv的环境,在这个里面放你的开发调试,当然这个其实也不是必须的,但是这样会方便管理一些. 再在centos上也弄一个 virtualenv虚拟 ...

  4. 第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目

    第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目 scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:h ...

  5. Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)

    Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...

  6. 使用Xshell和Xftp部署简单的项目

    最近本人偶尔接触到该如何部署项目,朋友要求截图,趁此之际,简单总结一下,以供大家分享,更希望各位大神指点,大家相互学习,有问题的勿喷. 1.使用环境:win 7 + tomcat 7 + MyEcli ...

  7. 五十一 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目

    scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:https://github.com/scrapy/scrapyd 建议安装 pip3 install s ...

  8. 使用Python实现一个简单的项目监控

    在公司里做的一个接口系统,主要是对接第三方的系统接口,所以,这个系统里会和很多其他公司的项目交互.随之而来一个很蛋疼的问题,这么多公司的接口,不同公司接口的稳定性差别很大,访问量大的时候,有的不怎么行 ...

  9. 最新JetBrainsPyCharm自动部署Python(Django,tornado等)项目至远程服务器

    每次开发Python项目时,对于所有Python开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP ...

随机推荐

  1. pycharm安装svn插件

    弄了svn的服务端和客户端,为了方便我pycharm的使用,我又在pycharm里进行了配置,要用到subversion 下载 https://sourceforge.net/projects/win ...

  2. 五行Python代码教你用微信来控制电脑摄像头

    如果说强大的标准库奠定了Python发展的基石,丰富的第三方库则是python不断发展的保证.今天就来通过itchart库来实现通过微信对电脑的一些操作. 一.安装库 安装itchat itchat ...

  3. Jvm垃圾回收器(终结篇)

    知识回顾: 第一篇<Jvm垃圾回收器(基础篇)>主要讲述了判断对象的生死?两种基础判断对象生死的算法.引用计数法.可达性分析算法,方法区的回收.在第二篇<Jvm垃圾回收器(算法篇)& ...

  4. 从PRISM开始学WPF(番外)共享上下文 RegionContext-更新至Prism7.1

    RegionContext共享上下文 There are a lot of scenarios where you might want to share contextual information ...

  5. Java建造者模式

    建造者模式 建造者模式适用场景: 建造一个复杂的对象适用,将构建对象的过程分开,每个类单独构造对象的一部分,最后组装起来,返回我们需要的对象. 下面的例子主要讲解构造一个飞船 Demo: //要获得的 ...

  6. defer 和 async 区别

    defer saync 共同点: script 标签属性, 控制脚本加载时间,解决script下载阻塞的问题. 区别: defer:推推推荐! 异步加载,所有元素解析完执行. async: 异步加载, ...

  7. 学习axios

    axios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' } }) . ...

  8. Android ListView的基本应用

    ListView可以说是Android原生开发最基本.最重要的控件之一,良好的使用ListView可以让自己的项目得到提高,下面是ListView最简单的应用方式 定义ListViewlist_vie ...

  9. MySQL安装之yum安装

    转载来源:https://www.cnblogs.com/brianzhu/p/8575243.html 1. 下载并安装MySQL官方的 Yum Repository 1 [root@BrianZh ...

  10. Easyui datagrid combobox输入框下拉(取消)选值和编辑已选值处理

    datagrid combobox输入框下拉(取消)选值和编辑已选值处理 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3   需求场景 如下,在datagri ...