Python学习(二)

本文详细介绍了PyCharm的使用与GitHub的配置流程,包括Git的安装、PyCharm中配置GitHub仓库的方法,以及如何利用Python启动小型服务器、管理虚拟环境、处理模块导入、归档和压缩文件,还分享了Python调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

一、工具pycharm和Github

1.1 安装Git

1.2 在pycharm配置GitHub

二、Python自带的小型服务器启动

三、pycharm自带的虚拟环境

四、关于模块import

五、归档和压缩

六、Python调试技巧


一、工具pycharm和Github

pycharm这么好用的IDE,配置个github就齐活儿~

1.1 安装Git

在pycharm上配置GitHub前,需要安装Git的客户端

参考网页:https://blog.youkuaiyun.com/qq_23341529/article/details/79331519

https://blog.youkuaiyun.com/qq_35203425/article/details/78561039

1.2 在pycharm配置GitHub

pycharm中配置仓库提交,需要初始化本地文件夹为仓库,方法是:打开cmd,输入命令:git init,初始化本文件夹为仓库,(如果该文件夹下有项目了,可以把项目先移到另一个文件夹,然后用命令git init初始化原来项目文件夹为仓库,然后再将项目拷贝进来)。初始化后会发现该文件夹下多了个.git的文件夹。

参考网址:https://blog.youkuaiyun.com/qq_35203425/article/details/78561039

https://www.jianshu.com/p/231584cb735b

然后就可以使用pycharm来提交你的代码到GitHub中去了,可以commit和push。

二、Python自带的小型服务器启动

1、Python3.0版本在Windows启动命令,python -m http.server 8081

参考网址:https://blog.youkuaiyun.com/weightwwc/article/details/79406094

这样是可以利用Python搭建一个本地的服务器的。当然也可以这样启动:

#启动Python自带服务器的脚本
from http.server import CGIHTTPRequestHandler,test

test(HandlerClass = CGIHTTPRequestHandler, port = 8081)

执行该脚本就行,然后就可以在网页或者局域网内访问了:localhost:8081

2、在默认访问的路径下,会是当前服务器目录出现可以下载的文件。你可以在下面建立一个html文件,如下摘自《Python核心编程》p349

<HTML><HEAD><TITLE>
Friends CGI Demo (static screen)
</TITLE></HEAD>
<BODY><H3>Friends list for: <I>NEW USER</I></H3>
<FORM ACTION="/cgi-bin/first_cgi.py">
<B>Enter your Name:</B>
<INPUT TYPE=text NAME=person VALUE="NEW USER" SIZE=15>
<P><B>How many friends do you have?</B>
<INPUT TYPE=radio NAME=howmany VALUE="0" CHECKED> 0
<INPUT TYPE=radio NAME=howmany VALUE="10"> 10
<INPUT TYPE=radio NAME=howmany VALUE="25"> 25
<INPUT TYPE=radio NAME=howmany VALUE="50"> 50
<INPUT TYPE=radio NAME=howmany VALUE="100"> 100
 <P><INPUT TYPE=submit></FORM></BODY></HTML>

然后该超文本指明了处理的CIG路径为“/cgi-bin/first_cgi.py”来处理表单的提交工作,简单的处理Python脚本如下。和书上的不一样,这里进行了改动。

# CGI处理模块
import cgi, cgitb
import codecs, sys

#防止中文乱码出现添加
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)

# 创建 FieldStorage 的实例化
form = cgi.FieldStorage()
 
# 获取数据
site_name = form.getvalue('person')
site_url  = form.getvalue('howmany')
 
print ("Content-type:text/html")
print ()
print ("<html>")
print ("<head>")
print ("<meta charset=\"utf-8\">")
print ("<title>菜鸟 CGI 菜鸟 </title>")
print ("</head>")
print ("<body>")
print ("<h2>%s 菜鸟 %s</h2>" % (site_name, site_url))
print ("</body>")
print ("</html>")

这样简单处理就完成了。当然其他复杂的需要修改的目录等等,是需要修改http.server模块的server.py脚本的。例如修改cgi-bin的目录名称成cgi就涉及到修改server.py脚本。

学习地址:https://blog.youkuaiyun.com/baidu_21088863/article/details/52506949

三、pycharm自带的虚拟环境

Venv创建虚拟环境安装多版本python

除了手动创建虚拟环境外,还可以用pycharm自带的虚拟环境。在创建项目的时候使用自带的虚拟环境创建好后,CMD进入到创建好的文件下。

我这里是:D:\study\PythonStudy\compare_picture\venv\Scripts

然后再该文件夹下:敲击命令:activate就可以激活虚拟环境。

然后你就可以在该虚拟环境下安装依赖的包了,这样比较独立不会相互干扰。

参考网址:https://blog.youkuaiyun.com/SunChao3555/article/details/79163379

https://www.cnblogs.com/IDRI/p/6354237.html

四、关于模块import

1、导入模块相当于是把模块的代码全部黏贴到你现在代码的前面。

所以当你在一个模块中定义了一个print后,导入到别的代码里面肯定会打印这一行的。

2、模块命名不能以数字开头,需要转换。

3、from module import *导入所有函数和类,但是容易造成命名污染。

4、if __name__ == '__main__':可以做个判断作为程序的入口,这个代码是否作为主进程去执行的时候的判断,这个是就区分了模块还是为主进程去调用。

5、只有在sys.path中才能找到的模块,当然你可以自己添加模块的搜索路径。这些路径也有先后顺序的。

6、还可以导入包,一个包就是一个文件夹,是模块的集合,一个包至少要有一个__init__.py文件。__all__可以指定导入的包。

7、导入自己模块方法

a.如果自己写的一个python程序需要作为模块导入,则在使用的时候需要首先import sys,然后ys.path.append("c:/python"),c:/python是程序所在目录。意思就是告诉解释器除了从默认的目录中寻找之外,还需要从目录c:\python中寻找模块。这样之后就可以使用import hello(hello是自己编写的程序的名字)导入自己的模块了。

b.将库文件复制到sys.path列表中的目录里(如site-packages目录)。

五、归档和压缩

1、shutil.make_archive,归档:把多个文件或者文件夹合并到一个文件当中。

反归档shutil.unpack_archive

2、zipfile.ZipFile,压缩:用算法把多个文件或者文件夹无损或者有损合并到一个文件当中。

解压缩zipfile.extractall

# _*_ coding:utf-8 _*_

import os
import tkinter
from tkinter import filedialog
import zipfile

zzz_name = ".\\zyl.app"
yyy_name = ".\\zyl.app"
def openfiles2():
    global zzz_name
    zzz_name = filedialog.askopenfilename(title='打开zyl文件', filetypes=[('zyl', '*.app'), ('All Files', '*')])
    print(zzz_name)

def openfilecgns():
    global yyy_name
    yyy_name = filedialog.askopenfilename(title='打开zyl文件', filetypes=[('zyl', '*.app'), ('All Files', '*')])
    print(yyy_name)

def zip_files():
    global zzz_name
    global yyy_name
    files = [zzz_name, yyy_name]  # 文件的位置,多个文件用“,”隔开
    pwd = os.path.basename(zzz_name)
    zip_name = pwd.split('.', 1 )[0] + ".zip"
    print(zip_name)
    zip = zipfile.ZipFile( zip_name, 'w', zipfile.ZIP_DEFLATED )
    for file in files:
        print ('compressing', file)
        zip.write( file )
    zip.close()
    print ('compressing finished')

GUI = tkinter.Tk()            # 创建父容器GUI
GUI.title("sensor pack tool") # 父容器标题
GUI.geometry("460x380")  # 设置父容器窗口初始大小,如果没有这个设置,窗口会随着组件大小的变化而变化
btn1 = tkinter.Button(GUI, text='打开zyl文件', font=("宋体", 20, 'bold'), width=30, height=1, command=openfiles2)
btn2 = tkinter.Button(GUI, text='打开zyl文件', font=('宋体', 20, 'bold'), width=30, height=1, command=openfilecgns)
btn3 = tkinter.Button(GUI, text='开始压缩', font=('宋体', 20, 'bold'), width=30, height=1, command=zip_files)
btn1.place(x=0,y=0)
btn2.place(x=0,y=50)
btn3.place(x=0,y=100)
GUI.mainloop()

六、Python调试技巧

pdb调试和pycharm调试。

https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值