导航:首页 > 编程语言 > Python引用底层文件写法

Python引用底层文件写法

发布时间:2022-07-27 04:22:01

A. python 怎么引入上上级目录的文件

python导入同级别模块很方便:
import xxx
要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件
from dirname import xxx
要导入上级目录,可以使用sys.path:
首先sys.path的作用是:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块
所以改变思路,直接把上级目录加到sys.path里:sys.path.append('../')
from fatherdirname import xxx

B. python 的引用.py文件问题

原因:Python默认是以ASCII作为编码方式的,如果在自己的Python源码中包含了中文(或者其他非英语系的语言),此时即使你把自己编写的Python源文件以UTF-8格式保存了,但实际上,这依然是不行的。

解决办法很简单,只要在文件开头加入下面代码就行了。

# -*- coding: UTF-8 -*-

#coding=utf-8

C. python 引用别的文件类

首先要你在文件夹B里放一个__init__.py的文件,
然后就可以在test.py中:
from .B.b import 类名

望采纳!

D. python 怎么引用其他文件的类

在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址。所以如果要在当前脚本引用其他文件,除了将文件放在和脚本同一目录下,还有以下几种方法,
1. 将文件所在位置添加到sys.path中
import sys
sys.path.insert(0, '/path/to/application/app/folder') # or sys.path.append('/path/to/application/app/folder')

import file

2. 在文件目录下新建__init__.py文件然后调用文件
from application.app.folder.file import func_name

init.py文件
a).init.py文件的作用
该文件的主要作用使初始化Python包。如果目录下面包含了该文件,Python解释器就会将该目录当做一个包,下一步就可以使用import语句在别的.py脚本中引用该目录下的文件。一个标准Python模块的结构如下所示:
package/
__init__.py
file.py
file2.py
subpackage/
__init__.py
submole1.py
submole2.py

b). __init__文件可以为空但可以用来建立对包的需求。一般来说会在该文件中写那些类,函数等需要被导入到包水平,从而可以被方便的引用。比如:如果file.py文件中有一个File类,在init.py文件中啥都没写时引用File类需要这样操作:
from package.file import File

如果在__init__.py文件中将file导入包,那就在包水平可以直接引用File类:
# in your __init__.py
from file import File

# in your script
from package import File

此外,还需要注意的一点是__init__.py文件中的all变量。如果解释器在__init__.py文件中观察到了__all__变量,那么在运行from package import *时就只会引入__all__变量中列出的那些模块。例如:如果想在上述结构的只引入submole1模块,那么可以在subpackage/__init__.py文件中定义__all__ = ['submole1'],当引用subpackage时from subpackage import *就只引入了submole1模块。
3. 将文件所在目录添加到python的环境变量
export PYTHONPATH=$HOME/pathToYourScripts/:$PYTHONPATH

E. python如何引用文件

with open('file','r') as f:

F. Python 里如何引用文件

你在 execution.py 文件中怎么引用的

#execution.py

fromfolder_1importmodels
#这样引用是没有问题的

这个在Python2.7 是没有问题的

G. Python可以做系统底层开发吗

可以的,因为pytho可以调用系统的API,C怎么调用,python一样怎么调用就行。
具体如何实现可以参考:python灰帽子一书,这本书的中文版网上到处有下,一下就好
下面是目录:看看吧,没什么不能做的
目录
· · · · · ·

第1章 搭建开发环境 1

1.1 操作系统要求 1

1.2 获取和安装Python 2.5 2

1.2.1 在Windows下安装Python 2

1.2.2 在linux下安装Python 2

1.3 安装Eclipse和PyDev 4

1.3.1 黑客挚友:ctype库 5

1.3.2 使用动态链接库 6

1.3.3 构建C数据类型 8

1.3.4 按引用传参 9

1.3.5 定义结构体和联合体 9

第2章 调试器原理和设计 12

2.1 通用寄存器 13

2.2 栈 15

2.3 调试事件 17

2.4 断点 18

2.4.1 软断点 18

2.4.2 硬件断点 20

2.4.3 内存断点 22

第3章 构建自己的Windows调试器 24

3.1 Debugee,敢问你在何处 24

3.2 获取寄存器状态信息 33

3.2.1 线程枚举 34

3.2.2 功能整合 35

3.3 实现调试事件处理例程 39

3.4 无所不能的断点 44

3.4.1 软断点 44

3.4.2 硬件断点 49

3.4.3 内存断点 55

3.5 总结 59

第4章 PyDbg——Windows下的纯Python调试器 60

4.1 扩展断点处理例程 60

4.2 非法内存操作处理例程 63

4.3 进程快照 66

4.3.1 获取进程快照 67

4.3.2 汇总与整合 70

第5章 Immunity Debugger——两极世界的最佳选择 74

5.1 安装Immunity Debugger 74

5.2 Immunity Debugger 101 75

5.2.1 PyCommand命令 76

5.2.2 PyHooks 76

5.3 Exploit(漏洞利用程序)开发 78

5.3.1 搜寻exploit友好指令 78

5.3.2 “坏”字符过滤 80

5.3.3 绕过Windows 下的DEP机制 82

5.4 破除恶意软件中的反调试例程 87

5.4.1 IsDebuugerPresent 87

5.4.2 破除进程枚举例程 88

第6章 钩子的艺术 90

6.1 使用PyDbg部署软钩子 90

6.2 使用Immunity Debugger部署硬钩子 95

第7章 DLL注入与代码注入技术 101

7.1 创建远程线程 101

7.1.1 DLL注入 102

7.1.2 代码注入 105

7.2 遁入黑暗 108

7.2.1 文件隐藏 109

7.2.2 构建后门 110

7.2.3 使用py2exe编译Python代码 114

第8章 Fuzzing 117

8.1 几种常见的bug类型 118

8.1.1 缓冲区溢出 118

8.1.2 整数溢出 119

8.1.3 格式化串攻击 121

8.2 文件Fuzzer 122

8.3 后续改进策略 129

8.3.1 代码覆盖率 129

8.3.2 自动化静态分析 130

第9章 Sulley 131

9.1 安装Sulley 132

9.2 Sulley中的基本数据类型 132

9.2.1 字符串 133

9.2.2 分隔符 133

9.2.3 静态和随机数据类型 134

9.2.4 二进制数据 134

9.2.5 整数 134

9.2.6 块与组 135

9.3 行刺WarFTPD 136

9.3.1 FTP 101 137

9.3.2 创建FTP协议描述框架 138

9.3.3 Sulley会话 139

9.3.4 网络和进程监控 140

9.3.5 Fuzzing测试以及Sulley的Web界面 141

第10章 面向Windows驱动的Fuzzing测试技术 145

10.1 驱动通信基础 146

10.2 使用Immunity Debugger进行驱动级的Fuzzing测试 147

10.3 Driverlib——面向驱动的静态分析工具 151

10.3.1 寻找设备名称 152

10.3.2 寻找IOCTL分派例程 153

10.3.3 搜寻有效的IOCTL控制码 155

10.4 构建一个驱动Fuzzer 157

第11章 IDAPython——IDA PRO环境下的Python脚本编程 162

11.1 安装IDAPython 163

11.2 IDAPython函数 164

11.2.1 两个工具函数 164

11.2.2 段(Segment) 164

11.2.3 函数 165

11.2.4 交叉引用 166

11.2.5 调试器钩子 166

11.3 脚本实例 167

11.3.1 搜寻危险函数的交叉代码 168

11.3.2 函数覆盖检测 169

11.3.3 检测栈变量大小 171

第12章 PYEmu——脚本驱动式仿真器 174

12.1 安装PyEmu 174

12.2 PyEmu概览 175

12.2.1 PyCPU 175

12.2.2 PyMemory 176

12.2.3 PyEmu 176

12.2.4 指令执行 176

12.2.5 内存修改器与寄存器修改器 177

12.2.6 处理例程(Handler) 177

12.3 IDAPyEmu 182

12.3.1 函数仿真 184

12.3.2 PEPyEmu 187

12.3.3 可执行文件加壳器 188

12.3.4 UPX加壳器 188

12.3.5 利用PEPyEmu脱UPX壳 189

H. python中需要引用文件名称在哪

第一种:os.listdir
os.listdir() 方法用于返回指定的目录下包含的文件或子目录的名字的列表。这个列表以字母顺序。其得到的是仅当前路径下的文件名,不包括子目录中的文件,如果需要得到所有文件需要递归。 它也不包括 '.' 和 '..' 即使它在目录中。
语法格式为:os.listdir(path)
举例:def list_dir(file_dir):
'''
通过 listdir 得到的是仅当前路径下的文件名,不包括子目录中的文件,如果需要得到所有文件需要递归
'''
print'\n\n<><><><><><> listdir <><><><><><>'
print "current dir : {0}".format(file_dir)
dir_list = os.listdir(file_dir)
for cur_file in dir_list:
# 获取文件的绝对路径
path = os.path.join(file_dir, cur_file)
if os.path.isfile(path): # 判断是否是文件还是目录需要用绝对路径
print "{0} : is file!".format(cur_file)
if os.path.isdir(path):
print "{0} : is dir!".format(cur_file)
list_dir(path) # 递归子目录
第二种:os.walk
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
语法格式为:os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
方法参数说明:top:要遍历的目录的路径
topdown:可选,如果为 True,则优先遍历 top 目录,以及 top 目录下的每一个子目录,否则优先遍历 top 的子目录,默认为 True
onerror: 可选, 需要一个 callable 对象,当 walk 异常时调用
followlinks:可选, 如果为 True,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录,默认为 False
args:包含那些没有 '-' 或 '--' 的参数列表
返回值: 三元组 (root, dirs, files)
root :所指的是当前正在遍历的目录的地址
dirs :当前文件夹中所有目录名字的 list (不包括子目录)
files :当前文件夹中所有的文件 (不包括子目录中的文件)
举例:def work_dir(file_dir):
print'\n\n<><><><><> work dir <><><><><>'
for root, dirs, files in os.walk(file_dir):
print'\n========================================'
print "root : {0}".format(root)
print "dirs : {0}".format(dirs)
print "files : {0}".format(files)
for file in files:
try:
print'-----------------------------------'
file_name = os.path.splitext(file)[0]
file_suffix = os.path.splitext(file)[1]
file_path = os.path.join(root, file)
file_abs_path = os.path.abspath(file)
file_parent = os.path.dirname(file_path)
print "file : {0}".format(file)
print "file_name : {0}".format(file_name)
print "file_suffix : {0}".format(file_suffix)
print "file_path : {0}".format(file_path)
print "file_abs_path : {0}".format(file_abs_path)
print "file_parent : {0}".format(file_parent)
except Exception, e:
print "Exception", e
找到文件目录,对于Python初学者来说算是一个简单操作了,希望本文能对Python小白有所帮助。

I. 请教Python关于找到文件并引用

一、Python查找模块的路径

运行Python应用或引用Python模块,Python解释器要有一个查找的过程。可以通过设置一个环境变量PYTHONPATH为Python增加一个搜索路径,以方便查找到相关Python模块(不同的操作系统环境变量的设置稍有不同,默认以下都是WIndows环境),这与众多应用程序需要设置一个系统环境变量的道理是一样的。在命令行中可以通过以下命令设置:

C:\Users\Administrator>set PYTHONPATH=E:/Project/Python/MoleAndPackage/

进入Python环境后可以,通过Python的sys.path属性获得当前搜索路径的配置,可以看到之前我们设置的路径已经在当前搜索路径中了。
C:\Users\Administrator>pythonPython 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32Type "help", "right", "credits" or "license" for more information.>>> import sys>>> sys.path['', 'E:\\Project\\Python\\MoleAndPackage', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python\\DLLs', 'C:\\Python\\lib', 'C:\\Python\\lib\\plat-win', 'C:\\Python\\lib\\lib-tk', 'C:\\Python', 'C:\\Python\\lib\\site-packages']>>>

也可以通过sys模块的append方法在Python环境中增加搜索路径。
>>> sys.path.append("E:\\Project\\Python\\MoleAndPackage2")>>> sys.path['', 'E:\\Project\\Python\\MoleAndPackage', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python\\DLLs', 'C:\\Python\\lib', 'C:\\Python\\lib\\plat-win', 'C:\\Python\\lib\\lib-tk', 'C:\\Python', 'C:\\Python\\lib\\site-packages', 'E:\\Project\\Python\\MoleAndPackage2']>>>

二、Python中的模块和包

前面已经提到每个.py文件都是可以认为是一个Python模块,.py文件中可以包含类、方法、变量和常量(Python还没有严格意义上的常量,只是约定大写的变量作为常量),文件内也可以直接写所有的逻辑语句并在加载时从上之下直接执行,这与其他解释型语言是类似的。例如我们选择在文件夹MoleAndPackage中创建一个文本文件person.py文件即创建了一个简单的Python模块,其内容如下:
# -*- coding: utf-8 -*-ID = 1name = "This person"print namedef say(something):print name,'says', something

那么接下来我们就可以在Python环境中执行person.py。我们可以直接像执行一个批处理文件那样执行person.py,在cmd命令行输入:
Python E:/Project/Python/MoleAndPackage/person.py

本质上任何一个Python应用的入口模块都是这样被执行的(像C#和Java中的main函数),但是引用一个模块,就要建立运行它的上下文环境。我们先设置一个环境变量PYTHONPATH,以便Python解释器找到person.py模块,然后import person模块,即可访问其中的方法或变量。
C:\Users\Administrator>pythonPython 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32Type "help", "right", "credits" or "license" for more information.>>> import personThis person>>> person.say("hello")This person says hello>>> print person.nameThis person>>>

Python需要去某些固定的路径下去查找Python模块,上面我们设置在MoleAndPackage中查找。但是这些路径下也是有目录层次的,Python是如何查找子目录中的模块呢?特别是引用第三方包时,我们也需要知道一定的层次关系。实际上,Python通过目录和文件构建包结构,并且包是层层嵌套的,和目录层层嵌套是一样的,这样就构成了包内的访问路径(或者命名空间,也可以说Python应用的命名空间与其目录和文件结构是对应了,似乎缺少了一些灵活,但也更简单)。例如我们在MoleAndPackage文件夹下,创建一个文件夹animal,里面创建一个文本文件pet.py,其内容如下:
# -*- coding: utf-8 -*-ID = 2name = "This pet"print namedef run(somewhere):print name,'runs', somewhere

那么如何引用pet.py这个模块呢?按照Python的约定,需要在animal文件夹中创建名为__init__.py的空文本文件,以标识animal文件夹是一个包。倘若animal文件夹内还有文件夹作为包,也必须包含__init__.py文件。这样就层层标识了访问的路径。
>>> import animal.petThis pet>>> print animal.pet.nameThis pet>>> animal.pet.run("everywhere")This pet runs everywhere>>>

或者使用from关键字直接导入模块内的属性或方法:
>>> from animal.pet import name,run>>> print nameThis pet>>> run("everywhere")This pet runs everywhere>>>

三、Python模块间引用

简答来说,只要Python模块在其执行环境配置的搜索路径中,并且其所在位置是包结构的一部分,那么我们就可以引用该模块。上文已经提供了模块引用的基本示例。只不过模块间引用时import语句是写在模块文件中,我们修改person.py模块的代码。

1、from、import和as
# -*- coding: utf-8 -*-ID = 1name = "This person"print namedef say(something):print name,'says', somethingfrom animal.pet import name as pet_name, run as pet_rundef have():print name,'has', pet_name

import语句可以写在文档中的任何位置,甚至if语句中,以便更好的控制模块引用。还可以通过as语句,使用另一个变量名进行引用,以避免变量名冲突。>>> import personThis personThis pet>>> print person.nameThis person>>> print person.pet_nameThis pet>>> person.have()This person has This pet>>>

阅读全文

与Python引用底层文件写法相关的资料

热点内容
4mz算法 浏览:831
程序员全部穿格子图片 浏览:921
申通取件加密 浏览:817
颜色改变命令 浏览:679
海口童程童美学编程怎么样 浏览:694
vb编程未找到方法 浏览:239
三国战记命令 浏览:922
程序员穿运动鞋 浏览:505
自来水公司需要电脑编程 浏览:309
金融app如何从银行卡扣款 浏览:556
网站的源码修改成自己的 浏览:802
本科生程序员是初级吗 浏览:637
dht1151单片机 浏览:183
milvus源码 浏览:888
养生会所溯源码燕窝即食 浏览:536
法语词汇渐进pdf 浏览:791
手机应用加密忘密码怎么办 浏览:266
荣耀手机如何设置app安装权限 浏览:835
程序员征婚方法 浏览:226
如何使用天文app 浏览:882