想做一个Python工程师,都有哪些技能是必备的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想做一个Python工程师,都有哪些技能是必备的?相关的知识,希望对你有一定的参考价值。

Python转行难吗

参考技术A 跟大家分享一份系统的python学习路线图!
第一阶段Python基础与Linux数据库。
这是Python的入门阶段,也是帮助零基础学员打好基础的重要阶段。你需要掌握Python基本语法规则及变量、逻辑控制、内置数据结构、文件操作、高级函数、模块、常用标准库模块、函数、异常处理、mysql使用、协程等知识点。
学习目标:掌握Python基础语法,具备基础的编程能力;掌握Linux基本操作命令,掌握MySQL进阶内容,完成银行自动提款机系统实战、英汉词典、歌词解析器等项目。
第二阶段WEB全栈。
这一部分主要学习Web前端相关技术,你需要掌握html、CSS、javascript、jQuery、BootStrap、Web开发基础、VUE、Flask Views、Flask模板、 数据库操作、Flask配置等知识。
学习目标:掌握WEB前端技术内容,掌握WEB后端框架,熟练使用Flask、Tornado、Django,可以完成数据监控后台的项目。
第三阶段数据分析+人工智能。
这部分主要是学习爬虫相关的知识点,你需要掌握数据抓取、数据提取、数据存储、爬虫并发、动态网页抓取、scrapy框架、分布式爬虫、爬虫攻防、数据结构、算法等知识。
学习目标:可以掌握爬虫、数据采集,数据机构与算法进阶和人工智能技术。可以完成爬虫攻防、图片马赛克、电影推荐系统、地震预测、人工智能项目等阶段项目。
第四阶段高级进阶。
这是Python高级知识点,你需要学习项目开发流程、部署、高并发、性能调优、Go语言基础、区块链入门等内容。
学习目标:可以掌握自动化运维与区块链开发技术,可以完成自动化运维项目、区块链等项目。
按照上面分享的Python学习路线图学习完后,你基本上就可以成为一名合格的Python开发工程师。
参考技术B

       一阶段为Python语言,需要熟练掌握Python多线程并发编程技术,可以编写爬虫程序和语音识别软件;

  二阶段为Linux初级,需要熟练掌握Linux操作系统管理技术,可以搭建几乎所有Linux环境服务器;

  三至五阶段为Django、Flask、Tornado学习,需要掌握三大Python后端框架,解决一切前后端Web开发问题;

  六阶段为docker容器及服务发现,需要掌握Docker网络和服务发现的工作原理,了解一系列解决方案;

  七阶段为爬虫,需要掌握分布式多线程大型爬虫技术,能开发企业级爬虫程序;

  八阶段为数据挖掘和人工智能,可成为Python数据挖掘分析师,进入人工智能领域,成为IT市场前沿人才。

测试工程师必备技能之Linux系统指令大全

linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植的操作系统接口) 和 UNIX 的多用户、

多任务、支持多线程和多 CPU 的操作系统   ==》多测师_王sir原创

OS(Operating System):常见的操作系统有哪些?

centOS 6.5

redhat 4.9

ubuntu 14

 

linux 客户端连接工具:

SSH,Xshell(Xmanager 的一个组件),CRT

在Xshell上输入"ssh +ip地址"可快速连接至虚拟机上

 

:如SSH连接失败先执行下一步在连接。

解决方法:确定SSHD服务开启没;

开启命令:/etc/init.d/sshd restart

 

Linux常用指令归纳:

注:当有#符号时,表示此时为超级用户;当有$符号时,表示此时为普通用

常用指令

pwd :显示当前所在目录的绝对路径

/ :根目录

. :当前目录

.. :当前目录父目录(上一级目录

~ :表示家目录 宿主目录

ls       显示文件或目录(但是不包含隐藏的文件)

-rtl        根据时间排序显示

-l           列出文件详细信息l(list)    ll=ls -l

-a          列出当前目录下所有文件及目录,包括隐藏的a(all)

 

cd /root/
第一个/斜杠为根目录的意思
第二个/斜杠为XX目录下的文件或者目录

 

用ll查看文件最前面显示d 表示是目录 directory
前面显示尾- 表示为普通文件

ll 查看当前目录下面的文件以及目录(显示详细的信息)
ls -l 查看当前目录下面的文件以及目录(显示详细的信息) ll就等于ls -l
ls 查看当前目录下面的文件以及目录(不显示详细的信息)
ls -a 查看当前目录下面的文件以及目录(包含隐藏的)
ls -rtl 查看当前目录下面的文件以及目录(按照时间排序的)

man ls 查看ls命令后面可以接哪些参数 退出命令行模式按住q quit退出

 

mkdir            创建目录

     -p a/b/c    创建连接目录

cd                 进入目录

touch            创建空文件

1.vim + 文件名
2.在空白界面输入i,当左下角有insert出现,此时进入到编辑模式
3.输入要编辑的内容,按住Ctrl+c,然后再按住caps lock+大写的ZZ
注意点:千万不要按Ctrl+z和Ctrl+s==》会生成临时文件,导致文件
不能编辑

touch和vim创建文件的区别:
touch创建文件,文件内容可以为空
vim创建文件,文件内容不能为空,不然不能创建。

 

less               查看文件内容

more             查看文件内容

cat                查看文件内容

一个重定向符号 >
cat aa.txt > cc.txt
当目标文件不存在的时候,则新建目标文件,并且把源文件的内容复制到目标文件中
cat aa.txt > bb.txt
当目标文件存在的时候,则直接会把目标文件的内容进行覆盖

俩个重定向符号 >>
cat aa.txt >> dd.txt
当目标文件不存在的时候,则新建目标文件,并且把源文件的内容复制到目标文件中
cat aa.txt >> ee.txt
当目标文件存在的时候,则直接会在目标文件的最尾处进行追加。

 

 

cp                拷贝

[root@localhost xiaowang]# cp xiaoliu wzq  ---将xiaoliu文件拷贝到wzq目录下

绝对路径是从根目录/出发
.代表的是当前目录
./当前目录下面
相对路径的写法
cp bb.txt aa/bb.txt
cp bb.txt ./aa/dd.txt

绝对路径的写法
cp bb.txt /dcs2/aa/cc.txt

 

mv                移动或重命名

mv的用法:
1.移动
把文件移动到目录中去,把文件移动到文件中

2.重命名
当当前目录不存在则直接重命名
当当前目录存在相同文件名,则会进行覆盖。

 

rm                删除文件,不能删除目录

  -rf           强制删除(文件和目录都可以删除)

      -i            提示性删除(不能删除目录)

      -r            逐级删除直到全部删除( 从里到外的删除)

find               在文件系统中搜索某文件

 

[root@localhost /]# find /wangzhiqiang/xiaowang/ -type d     按文件目录类型查找

/wangzhiqiang/xiaowang/

/wangzhiqiang/xiaowang/wzq

[root@localhost /]# find /wangzhiqiang/xiaowang/ -type f     按文件查找

/wangzhiqiang/xiaowang/a

/wangzhiqiang/xiaowang/c

/wangzhiqiang/xiaowang/b

[root@localhost /]# find /wangzhiqiang/ -size +1M    按文件大小,查找大于1M的文件

/wangzhiqiang/apache-tomcat-7.0.56/webapps/cms.war

/wangzhiqiang/apache-tomcat-7.0.56/webapps/cms/WEB-INF/lib/druid-0.2.15.jar

/wangzhiqiang/apache-tomcat-7.0.56/webapps/cms/WEB-INF/lib/aspectjweaver-1.6.11.jar

 

[root@localhost wangzhiqiang]# find /wangzhiqiang/ -mtime +1  ---目录下文件的“更改时间”在 1 天之前的绝对路径

 

[root@localhost wangzhiqiang]# find . -mtime -1    ---目录下文件的“更改时间”在 1 天之内的绝对路径

./xiaowang

./xiaowang/yy/qq

 

[root@localhost /]# find /wangzhiqiang/xiaowang/ -name laowang  根据名字查找

/wangzhiqiang/xiaowang/laowang

[root@localhost xiaowang]# find /wangzhiqiang/xiaowang/ -name laol*

/wangzhiqiang/xiaowang/laoliu                "*"表示 0 个或多个字符匹配

[root@localhost /]# find / -name laol??      "?"表示单个字符匹配,

/wangzhiqiang/xiaowang/laoliu

 

[root@localhost /]# ps -ef |grep 80  只查80端口(重点)

[root@localhost /]# cat /etc/passwd |grep wangzhiqiang   只查“wangzhiqiang”用户

wangzhiqiang:x:500:500:wangzhiqiang:/home/wangzhiqiang:/bin/bash

grep:文本搜索工具   根据用户指定模式搜索

[root@localhost /]# grep ‘m...l‘ /etc/passwd  匹配任意单个字符

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

wc        统计文本中行数、字数、字节或者字符数

-l          统计行数

-c         统计字节数

nl          显示多少行,将详细信息也显示

rmdir     删除空目录(只能删除空目录 )

pwd       显示当前目录

ln          创建链接文件

  -s     软链接(接绝对路径,可以针对文件和目录创建软链接)

  -d     硬链接(只能针对文件,不能对目录操作,相当于就是备份)

eg: [root@localhost xiaowang]# ln -s wzq zhiqiang

lrwxrwxrwx. 1 root root    3 May  3 05:24 zhiqiang -> wzq

 

cat、more、less  分页显示文本文件内容

3个查看文件内容的命令:
cat 文件名 查看文件的所有内容并且全部显示在控制台
less 文件名 查看文件显示部分内容 按space键向下翻页,按b键向上翻页
按住Ctrl+z键 结束
more 文件名 以百分比的形式显示文件中的内容 按住enter键百分比增加
按住Ctrl+z键 结束

 

 

linux 如何显示一个文件的某几行(中间几行)

head、tail    显示文件头、尾内容

head 文件名 ==》默认查看文件的前面10行
tail 文件名 ==》默认查看文件的后面10行

head -n 5 head_tail.txt ==》查看前面5行
tail -n 5 head_tail.txt ==》查看倒数的5行
tail -n +5 head_tail.txt ==》从第5行开始显示到最后
cat head_tail.txt|head -n 10 ==》显示前面10行
cat head_tail.txt|head -n 10|tail -n +5 ==》显示5-10行
cat head_tail.txt|head -n 10|tail -n 6 ==》显示5-10行
cat head_tail.txt|tail -n +5|head -n 6 ==》显示5-10行
cat head_tail.txt|tail -n 26|head -n 6 ==》显示5-10行

 

date   显示时间

date -s ‘2016-09-01 11:27:00‘         root 用户修改系统时间

 

系统管理命令

who                   显示在线登陆用户

whoami               显示当前操作用户

hostname            显示主机名

uname                显示系统信息

getconf  LONG_BIT    显示内核信息

top                    动态显示当前耗费资源最多进程信息

eg:[root@localhost /]# top -d 10  每隔10s刷新一次

 

ps                     显示瞬间进程状态  

ps  –aux  列出目前所有的正在内存当中的程序  (a:显示其它用户启动进程  x:查看系统中属于自己的进程   u:启动这个进程的用户和它启动的时间)

free -m            查看服务器内存使用

du                     查看目录大小 du -h /home带有单位显示目录信息

df                     查看磁盘大小 df -h 带有单位显示磁盘信息

ifconfig              查看网络情况

[root@localhost xiaowang]# ifconfig eth0 192.168.1.111 netmask 255.255.255.0  改临时IP

 

service network restart:重启网卡  

ping                  测试网络连通

 

netstat    -anp      查看所有端口号(LISTEN表示端口被占用当中,最后一列显示被哪个服务所占用,显示的 LISTENING 并不表示端口被占用,不要和 LISTEN 混淆)

          -at       列出tcp所有的端口号

[root@localhost bin]# netstat -anp|grep 8080

tcp   0   0 :::8080              :::*           LISTEN      3442/java

显示8080端口正被java程序所占用

netstat -nultp    查看当前所有已经使用的端口情况

lsof –i :8080        通过端口号查看应用程序,,,    

ps -ef|grep 8080   通过端口号和服务进程的名称查看应用程序 grep是关键字搜索

注:端口号的作用,主要是区分服务类别和在同一时间进行多个会话。

clear                 清除当前屏幕的信息

reset             清除屏幕上显示的所有信息

history            打印历史命令

        -c         清除历史命令

alias                  对命令重命名 如:alias if=ifconfig,另外解除使用unalias

 

unalias             取消别名: unalias if   

 

kill                杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

Kill -9          不建议使用;当使用kill无法将进程杀死才使用该命令; 

fdisk 格式化文件系统

reboot    重启

shutdown -h now  立即关机

shutdown -h 120   2 分钟后关机

init 0   关机

 

打包压缩相关命令

linux中的打包命令:(tar、tar.gz、zip包都可以对目录进行打包操作)
tar包打包命令:tar -cvf aa.tar aa.txt
解压前删除源文件:rm -i aa.txt
tar包解压命令:tar -xvf aa.tar

tar.gz打包命令:tar -zcvf aa.tar.gz aa.txt
解压前删除源文件:rm -i aa.txt
tar.gz包解压命令:tar -zxvf aa.tar.gz

zip对文件进行打包
zip打包命令:zip aa.zip aa.txt
解压前删除源文件:rm -i aa.txt
.zip包解压命令:unzip aa.zip

zip对目录进行打包:zip -r bb.zip bb
解压前删除源目录:rm -r bb
zip对目录进行解压:unzip bb.zip

gzip打包命令:gzip aa.txt
解压命令:gunzip aa.txt.gz
注意点:
1.打包完成后源文件不存在,解压包之后之前的压缩包不存在
2.gzip命令不能对目录进行打包操作、只能对文件

 

rpm -ivh xxxx.rpm :安装 rpm 包 i:安装  v:进度  h:进度条

yum  install lrzsz : yum install :在线安装指令   lrzsz: l:linux  rz:本地往linux中上传文件, sz:linux往本地下载文件   lrzsz:上传和下载的工具

mysql:rpm -aq|grep -i mysql  :查询已经安装的mysql的程序包

   

用户及用户组管理

cat  /etc/passwd    存储用户账号

cat  /etc/group       存储组账号

cat  /etc/shadow    存储用户账号的密码

cat  /etc/gshadow  存储用户组账号的密码

useradd +用户名 增加用户名

adduser+用户名  增加用户名

passwd +用户名  修改用户的密码

彻底删除一个用户:

cd /usr/sbin

  (某些系统版本为bin文件夹)

在这里输入: ./userdel -r 用户名     (前面的./一定要加上)

groups+用户名:查用户属于哪个组

userdel +用户名 删除用户名

groupadd 组名 添加用户组

groupdel 组名  删除用户组

passwd root     给root设置密码

把用户加入到组:

gpasswd -a 用户 组名 把XX用户添加到XX组

把用户从组删除

gpasswd -d 用户 组名 把XX用户从XX组删除

 

三剑客(针对文件和目录):

chmod 修改文件权限,  chown 改变文件的属主   chgrp 改变文件属组

d:文件类型(表示目录) l:表示链接文件  -:表示普通文件

前三位:rwx:文件属主有读写执行的权限

中间三位:r-x:用户所在的组用户只有读,执行权限

后三位:--x :其它用户只有执行的权限

 

eg: drwxr-xr-x.   4 root root  4096 May  2 06:14 wangzhiqiang

d:文件类型(表示目录)

前三位:rwx:文件属主有读写执行的权限,  (u:用户自己(文件属主))

中间三位:r-x:用户所在的组用户只有读和执行的权限,(g:用户所在组)

后三位:--x :其它用户只有执行的权限,   (o:其它用户)

rwx  read=4 write=2读,写,execute=1 执行

 

Eg:drwxr-x--x. 2 root root 4096 May 13 23:39 bin

rwx  read=4 读,write=2 写,execute=1 执行

[root@localhost xiaowang]# chmod -R 777 yy      修改yy目录以及yy目录下所有文件的权限

drwxrwxrwx. 2 root root 4096 May  2 06:35 qq

[root@localhost dcs36]# chmod 777 a 修改 a目录的权限但是a目录下面文件的权限不变

 

读写执行权限详细解释:

drwxr-x--x. 2 root    root     4096 Feb 22 23:00 dcs36

1.表示root用户对dcs36目录有读写执行的权限

2.表示和root用户在同一个组的其他用户对dcs36目录

有读和执行的权限,但是没有写的权限。

3.其他用户(去掉root用户和root用户在同一个组的其他用户)对

dcs36目录只有执行的权限。

读(r):可以对文件执行 cat、more、less、head、tail 等文件查看命令。

写(w):可以对文件执行 vim修改文件数据的命令。但不能删除文件本身。

执行(x):对文件拥有了执行权限。比如shell脚本运行./+文件名.sh。

[user39@localhost bin]$ sh startup.sh user39这个用户去进行启动脚本显示拒绝访问

Using CATALINA_BASE:   /apache-tomcat-7.0.56

Using CATALINA_HOME:   /apache-tomcat-7.0.56

Using CATALINA_TMPDIR: /apache-tomcat-7.0.56/temp

Using JRE_HOME:        /usr

Using CLASSPATH:       /apache-tomcat-7.0.56/bin/bootstrap.jar:/apache-tomcat-7.0.56/bin/tomcat-juli.jar

touch: cannot touch `/apache-tomcat-7.0.56/logs/catalina.out‘: Permission denied

/apache-tomcat-7.0.56/bin/catalina.sh: line 385: /apache-tomcat-7.0.56/logs/catalina.out: Permission denied

 

先创建一个组:

组中是没有用户的,这时候再添加一个和组同名的用户会报错如下:

[root@localhost bin]# groupadd dcs21

[root@localhost bin]# cat /etc/group

[root@localhost bin]# useradd dcs21

useradd: group dcs21 exists - if you want to add this user to that group, use -g.

[root@localhost bin]# useradd dcs21 -g dcs21    #这里指的是创建一个用户dcs21并把这个用户添加到dcs21这个空的组当中。

[root@localhost bin]# cat /etc/group

[root@localhost bin]# groups dcs21

dcs21 : dcs21  #添加了之后显示dcs21用户已经属于dcs21组了

 

cat /etc/group|grep xiaoqiang   查看xiaoqiang组的gid即小组的id

awk -F":" ‘{print $1"/t/t"$4}‘ /etc/passwd | grep ‘506‘

通过组id 506查到组内的用户

如下:

[root@localhost xiaoqiang]# awk -F":" ‘{print $1"/t/t"$4}‘ /etc/passwd | grep ‘506‘

xiaoqiang/t/t506

xiaoyi/t/t506

xiaosan/t/t506

 

方法一:sftp: 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。

sftp  root@+对方IP     在sftp环境下操作自己的机器需要在指令前加“l”如‘lls’

passwd:对方密码  

登入后如下:

sftp> 

eg:sftp> get /var/www/fuyatao/index.php   /home/fuyatao/
这条语句将从远程主机的  /var/www/fuyatao/目录下将 index.php 下载到本地  /home/fuyatao/目录下。

sftp>put /home/fuyatao/downloads/Linuxgl.pdf  /var/www/fuyatao/
这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。

 

方法二:scp:可以在2个linux之间复制文件(直接在本地root目录下输入以下命令)

 eg:scp /wangzhiqiang/xiaowang/yy    root@IP(对方的IP): /home/xiaoliu    将本机下的“yy”文件拷贝到对方的“xiaoliu”目录下

 eg:scp root@ IP(对方的IP): /home/xiaoliu /yy  /wangzhiqiang/xiaowang      将对方下的“yy”文件拷贝到本机的“xiaowang”目录下

 

 

VIM 编辑

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 VIM是纯粹的自由软件。

多种不同的模式:

命令模式

输入模式/插入模式

末行模式:vim有许多内置命令,此模式即为其命令的接口

 

i:insert, 在当前光标所在处前面,转换为输入模式

I:在当前光标所在行行首,转换为输入模式

a: append, 在当前光标所在处字符后方,转换为输入模式

A:在当前光标所在行行尾,转换为输入模式

o(new line): 在当前光标所在行的下方新建一个空白行,并转换为输入模式

O:在当前光标所在行的上方新建一个空白行,并转换为输入模式

cc删除当前行并进入编辑模式
c$ 擦除从当前位置至行末的内容,并进入编辑模式
s 删除当前字符并进入编辑模式
S 删除光标所在行并进入编辑模式

 

:w 将缓冲区写入文件:,即保存修改
:wq 保存修改并退出,( 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间)
:x 保存修改并退出(写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间)
:q 退出,如果对缓冲区进行过修改,则会提示””
:q! 强制退出,放弃修改


dd 删除光标所在行
x 删除当前字符
X 删除前一个字符
D 删除光标以及光标后所有内容
yy 复制一行,此命令前可跟数字,表示复制多行,如6yy,表示从当前行开始复制6行移动光标按p进行粘贴

 

:10,20y :复制第 10 行至第 20 行之间的内容,按下‘P’
p 粘贴粘贴板的内容到当前行的下面(小写)
P 粘贴粘贴板的内容到当前行的上面(大写)

0 跳转至光标绝对行首

$ 跳转至光标绝对行尾

 

k,j,h,l上,下,左,右

H 移动光标到当前屏幕上最上边的一行
M 移动光标到当前屏幕上中间的一行
L 移动光标到当前屏幕上最下边的一行

编辑
r 替换一个字符

:/wang   根据字符查找       

:nohl   取消标记      
J 将下一行和当前行连接为一行

u 撤销  相对于Windows的Ctrl+Z

:10,20w  /xiaowang    将10到20行的内容单独创建到根目录下新建的“xiaowang”文件里

 

:set nu :显示行号

:set nonu :不显示行号

:%s/xiaobai/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中 所有 xiaobai 为 sky 

清除文件内容而不清除文件:true >文件名(在vim外面操作)

:%s/xiaobai/sky/  后面不加g 只把第一行的第一个xiaobai改为sky  后面的不进行更改

 true >bb.txt /dev/null(在vim外面操作)

 

以上是关于想做一个Python工程师,都有哪些技能是必备的?的主要内容,如果未能解决你的问题,请参考以下文章

要成为一名大数据开发工程师必备哪些技能?

Linux运维工程师须掌握的基础技能都有哪些?

软件测试工程师必备8大技能!

想做Python Web 开发,需要掌握哪些技能

python库都有哪些

分析软件工程师必备技能