Py层次递进与文件修改大程序,模块,name与file
层次的递进与返回
#输入quit的时候返回上一阶层,输入exit退出所有的循环
tag=True
while tag==True:
level1=input('level1:')
if level1=='quit':
break
if level1 =='exit':
tag=False
while tag==True:
level2=input('level2:')
if level2 == 'quit':
break
if level2 == 'exit':
tag =False
while tag==True:
level3=input('level3:')
if level3 == 'quit':
break
if level3 == 'exit':
tag =False
查询与修改文件的大程序
1.文件txt的内容
name 杀马特
年龄18
身高160
体重80
name 土嗨
年龄21
身高180
体重80
name aaaaa
年龄120
身高100
体重160
2.主程序
模块:每一个py文件就是一个模块
如果选package里面会多一个__init__.py的空文件,如果没有init就是directory文件
用package的时候,如果需要使用另一个py文件里面的函数的时候
1.比如说在ab.py里面需要导入另一个cal.py里面的函数
需要在ab.py的顶头写上
import cal
2.如果要cal里面的add函数则写cal.add()
3.如果觉得每次cal.add()很麻烦,可以改写
成from cal import add
4.如果ab.py和my_mouudle文件夹同一级别,现在需要在ab.py中使用my_moudle里
的cal.py,那么应该写from my_moudle import cal,这样才能用cal.py里面的函数
5.程序模块化的标准写法:
程序的入口在bin.py,其他的py文件放置在同一级的moudle文件夹里面。
然后在bin.py里面吧moudle文件夹里面的所有py文件调用进来。
6.执行哪个py文件的时候,解释器会把目录光标指向那个py文件的上一级的文件夹,
此时那个上级文件夹里面的py文件 都可以互相import到。
由于bin文件和module文件为同一级别,所以module里面的py
文件的写法应该是from module import xxx
目录
class
bin.py
__init__.py
mymodule
main.py
send.py
__init__.py
bin.py里面的内容
from mymodule import main
main.add(1,3)
main.py里面的内容
from mymodule import send
def add(x,y):
send.addprint()
print(x+y)
return x+y
send.py里面的内容
def addprint():
res=print('the add result is ')
return res
1.如果module文件夹里面还有module文件夹
可以用.来连接来调用。
目录
class
bin.py
__init__.py
mymodule
main.py
send.py
__init__.py
mymodule1
mymodule2
seek.py
要import里面的seek.py
可以写from mymodule.mymodule1.mymodule2 import seek
__name__的作用:
找出引用__name的这段的程序来自于哪里,比如在bin内输入
print(__name__),此时打印__name__在本函数bin内执行,
所以结果是__main__.
但是如果在它的模块里的main.py里面的函数里输入print(__name__)
,并且在bin中调用那个函数,那么显示出来将会是main.py的路径
if __name__ =='main': 写这句话之后再进行后续程序的书写
用这句话可以分开测试代码和运行代码
比如想在module里面的py文件书写测试代码,但是如果在module
里面写了测试代码,主函数bin运行的时候也会执行测试代码。
如果在测试代码的开头加上if __name__ =='main',这样执行主函数
bin的时候,测试代码将不会运行。
bin文件里面的开头加上if __name__ =='main'可以保证bin文件无法
被调用
__file__的运用方法:
os.path.abspath(__file__)是当前py文件的绝对路径。
实例:如何把当前bin文件.py的上一级的文件夹的绝对路径加入绝对路径
import os
print(os.path.dirname(os.path.abspath(__file__)))
path1=os.path.dirname(os.path.abspath(__file__))
sys.path.append(path1)
Py层次递进与文件修改大程序,模块,name与file的更多相关文章
- Python 文件修改-函数介绍
上节课复习:1.字符编码 1.1 如何解决乱码问题: 字符存取使用的编码标准不一致 1.2 文件头 在文件的首行写入文件头,用于控制Python解释器读取py文件内容时使用的编码 #coding:文件 ...
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用提高nodejs调试效率
在开发或调试Node.js应用程序的时候,当你修改js文件后,总是要按下CTRL+C终止程序,然后再重新启动,即使是修改一点小小的参数,也 总是要不断地重复这几个很烦人的操作.这是因为Node.js ...
- 如何在Ubuntu Unity上修改应用程序图标
转自如何在Ubuntu Unity上修改应用程序图标 这篇文章将教大家在Ubuntu Unity上修改应用程序图标,这个教程适合于Ubuntu 14.04, Ubuntu 13.10, Ubuntu ...
- 凹凸曼的修改zencart 程序(经典!)
==================================================================================================== ...
- Git版本控制:Git查阅、撤销文件修改和撤销文件追踪
http://blog.csdn.net/pipisorry/article/details/47867097 查看文件的修改历史 git log --pretty=oneline 文件名 # 显示修 ...
- Python:基于MD5的文件监听程序
前述 写了一个基于MD5算法的文件监听程序,通过不同的文件能够生成不同的哈希函数,来实现实现判断文件夹中的文件的增加.修改.删除和过滤含有特定字符的文件名的文件. 需求说明 需要实现对一个文件夹下的文 ...
- 长连接锁服务优化实践 C10K问题 nodejs的内部构造 limits.conf文件修改 sysctl.conf文件修改
小结: 1. 当文件句柄数目超过 10 之后,epoll 性能将优于 select 和 poll:当文件句柄数目达到 10K 的时候,epoll 已经超过 select 和 poll 两个数量级. 2 ...
- chattr 改变文件、目录属性 (chmod、passwd等涉及文件修改的命令提示Operation not permitted)
与chmod这个命令相比,chmod只是改变文件的读写.执行权限,更底层的属性控制是由chattr来改变的. lsattr查看文件或目录属性 chattr命令的用法:chattr [ -RVf ] [ ...
- MongoDB日志文件过大
MongoDB日志文件过大 MongoDB启动的时候指定了--logpath为一个日志文件.随着时间此文件会变得越来越大,达到好几个G. 因为不想让MongoDB进程重新启动,所以不能停止进程删除此文 ...
随机推荐
- 多任务-python实现-多线程共享全局变量(2.1.3)
@ 目录 1.全局变量的修改 2.全局变量在多线程中的共享 3.多线程可能遇到的问题 1.全局变量的修改 代码实现 num = 100 nums = [11,22] def test(): globa ...
- MGRE综合实验
实验要求: 实验拓扑: 一. R1-2-3构建星型结构的MGRE结构,R1为中心站点,假设R1的共有IP为固定地址 1. 配置IP地址 2. 配置缺省 3. 配置MGRE环境 在中心站点上: 在分支站 ...
- vue+element对常用表格的简单封装
在后台管理和中台项目中, table是使用率是特别的高的, 虽然element已经有table组件, 但是分页和其他各项操作还是要写一堆的代码, 所以就在原有的基础上做了进一步的封装 所涵盖的功能有: ...
- 读取平台管理员xlsx文件
package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...
- Windows下不同版本的JDK共存
1.安装jdk7,将C:\Windows\System32目录下的java.exe.javaw.exe.javac.exe删除. 2.安装jdk8,将系统环境变量path中的C:\ProgramDat ...
- JS中的多层次排序算法
引子 排序在编程中随处可见,从开始学习变成,到项目开发,基本上或多或少会遇到一些排序问题,接下来我要写的是我在实际开发终于到的一个排序问题,一开始卡了我很久,后面随着知识积累,实践变多才解决掉了,不知 ...
- 每日一个linux命令3
Linux 中用pwd命令来查看"当前工作目录"的完整路径. 简单的说,每当你在终端进行操作时,你都会有一个当前工作目录,在不太确定当前位置时,就会使用pwd来判定当前目录在文件系 ...
- .NET 云原生架构师训练营(模块二 基础巩固 MongoDB API重构)--学习笔记
2.5.8 MongoDB -- API重构 Lighter.Domain Lighter.Application.Contract Lighter.Application LighterApi Li ...
- vue 过滤器 filter 的使用
1.局部过滤器的使用 比如性别,订单状态的数据,后端一般返回数字来代替状态.以性别为模拟数据,0是未知,1是男,2是女. 直接数据渲染出来,只有012,没有性别 根据后端返回的int类型值,前端对数据 ...
- 醒醒!Python已经支持中文变量名啦!
最近,我在翻阅两本比较新的 Python 书籍时,发现它们都犯了一个严重的低级错误! 这两本书分别是<Python编程:从入门到实践>和<父与子的编程之旅>,它们都是畅销书,都 ...