python 多个文件怎么调用

Python014

python 多个文件怎么调用,第1张

同时打开三个文件,文件行数一样,要求实现每个文件依次读取一行,然后输出,我们先来看比较容易想到的写法

with open(filename1, 'rb') as fp1:

with open(filename2, 'rb') as fp2:

with open(filename3, 'rb') as fp3:

for i in fp1:

j = fp2.readline()

k = fp3.readline()

print(i, j, k)

注意这里只能对单个文件进行for循环读取,不能写成:

for i, j, k in fp1, fp2, fp3:

print(i, j, k)

但可使用强大的zip操作:

for i, j, k in zip(fp1, fp2, fp3):

print(i, j, k)

这样层层的嵌套未免啰嗦,with结构支持一种更简洁的写法:

with open(filename1, 'rb') as fp1, open(filename2, 'rb') as fp2, open(filename3, 'rb') as fp3:

for i in fp1:

j = fp2.readline()

k = fp3.readline()

print(i, j, k)

或者使用更为优雅的写法,此时需要contextlib语法糖:

from contextlib improt ExitStack

with ExitStack() as stack:

files = [stack.enter_context(open(fname)) for fname in [filename1, filename2, filename3]]

for i, j, k in zip(files[0], files[1], files[2]):

print(i, j, k)

1

先配置环境变量,比如你的内置函数放在c盘下x.py,那么

import sys

sys.path.append('c:\\')2

到你要引用的地方

import x就可以了,注意如果有冲突最好用包(Package)

每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字。调用包就是执行包下的__init__.py文件。

跨包调用(当前目录下有modulepack1包):

1

from

modulepack1[.modulepack2]

import

module

如果当前目录下能够找到要调用的包,可以直接from包import模块,如果当前目录找不到要调用的包,需要向sys.path添加包的所在绝对路径。

import一个包名,就等于执行了这个包下的__init__文件。

方案如下:

将另一个py做成一个包,或者直接和调用文件放在同一个目录下;

在调用者文件头引入:from py名字 import *;

这样就可以使用另一个py文件的所有函数了。