admin管理员组文章数量:1037775
【python】模块导入
1. 模块导入
1.1. 同一目录下,模块导入
即:需要导入的模块 brother_test.py,和当前文件 main.py 是同一个文件夹下的情况。
相当于自己兄弟,是可以直接导入
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── main.py
# └── brother_test.py brother_test.py 中有类 Person,类中有函数 say_hello()
import brother_test # 导入整个模块
weiyan = brother_test.Person()
weiyan.say_hello()
from brother_test import Person # 导入模块中某个类
weiyan = Person()
weiyan.say_hello()
输出就不必贴出来了,不重要。
1.2. 子级目录下,模块导入
即:需要导入的模块 child_test.py,它的父级或者更高级目录,和当前文件 main.py 是同一个文件夹下的情况。
相当于兄弟的儿子,也就是侄子,可以通过兄弟那层关系导入
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── main.py
# └── brother/child_test.py child_test.py 中有类 Person,类中有函数 say_hello()
from brother import child_test # 导入整个模块
weiyan = child_test.Person()
weiyan.say_hello()
from brother.child_test import Person # 导入模块中某个类
weiyan = Person()
weiyan.say_hello()
1.3. 修改sys.path动态添加路径
如果需要导入其他一些结构比较复杂的模块,此时也许不能直接导入,就可以使用修改 sys.path 动态添加路径的方式。
它可以把要导入模块所在的相对路径或者绝对路径,添加到 sys.path 中,这样就可以导入模块。
关于 sys.path:它是 Python 的 sys 模块中的一个内置变量,它是一个列表,用于指定模块的搜索路径。当使用 import 导入某个模块时,python 会对 sys.path 列表中的路径逐一查找,如果找到了,就导入成功,如果找不到,就提示模块不存在。
我们可以先来看看 sys.path 里的内容是什么样:
代码语言:python代码运行次数:0运行复制import sys # 导入 sys 模块
print(type(sys.path)) # 查看 sys.path 数据格式
for path in sys.path: # 打印 sys.path 中的内容
print(path)
输入结果为:
代码语言:txt复制<class 'list'>
E:\python_scripts\isli_tools\father
E:\python_scripts\isli_tools
E:\python_scripts\isli_tools\father
D:\python\python310.zip
D:\python\DLLs
D:\python\lib
D:\python
D:\python\lib\site-packages
D:\python\lib\site-packages\win32
D:\python\lib\site-packages\win32\lib
D:\python\lib\site-packages\Pythonwin
这些都是我在当前 main.py 模块中,可以直接导入的路径。我们可以通过给 sys.path 添加其他路径,来实现导入模块的目的。
传入相对路径:
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── father / main.py
# └── uncle / cousin_test.py cousin_test.py 中有类 Person,类中有函数 say_hello()
# 使用相对路径,导入整个模块
import sys
sys.path.append('../uncle')
import cousin_test
weiyan = cousin_test.Person()
weiyan.say_hello()
# 使用相对路径,导入模块中某个类
import sys
sys.path.append('../uncle')
from uncle.cousin_test import Person
weiyan = Person()
weiyan.say_hello()
传入绝对路径:
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── father / main.py
# └── uncle / cousin_test.py cousin_test.py 中有类 Person,类中有函数 say_hello()
# 使用相对路径,导入整个模块
import sys
sys.path.append(r'E:\python_scripts\isli_tools\uncle')
import cousin_test
weiyan = cousin_test.Person()
weiyan.say_hello()
# 使用相对路径,导入模块中某个类
import sys
sys.path.append(r'E:\python_scripts\isli_tools\uncle')
from uncle.cousin_test import Person
weiyan = Person()
weiyan.say_hello()
2. os 模块
os 模块主要是与操作系统之间的交互,查询和操作目录、文件等相关内容。
常用方法如下:
代码语言:python代码运行次数:0运行复制import os
print(os.sep) # 获取当前系统路径分隔符
print(os.name) # 获取当前使用的工作平台,Windows返回nt,Linux和macOS返回posix
print(os.getcwd()) # 获取当前工作目录
print(os.listdir(r'E:\python_scripts\isli_tools\father\brother')) # 获取指定目录下所有目录和文件名
print(os.path.dirname(r'E:\python_scripts\isli_tools\father\main.py')) # 返回文件目录
print(os.path.basename(r'E:\python_scripts\isli_tools\father\main.py')) # 返回文件名
print(os.path.getsize('main.py')) # 获取文件大小
print(os.path.abspath('main.py')) # 获取绝对路径
print(os.path.join(r'E:\python_scripts\isli_tools', 'base.py')) # 连接目录与文件名,或者目录与目录
print(os.path.exists(r'E:\python_scripts\isli_tools\base\base.py')) # 判断文件或目录是否存在,返回布尔值
print(os.path.isfile(r'E:\python_scripts\isli_tools\base\base.py')) # 判断是否为文件,返回布尔值
print(os.path.isdir(r'E:\python_scripts\isli_tools')) # 判断是否为目录
os.mkdir(r'E:\python_scripts\isli_tools\new_dir') # 创建一个目录,如果已存在则不可创建
os.rename(r'E:\python_scripts\isli_tools\new_dir', r'E:\python_scripts\isli_tools\old_dir') # 重命名文件或目录
os.rmdir(r'E:\python_scripts\isli_tools\old_dir') # 删除一个空目录,如果里面有文件,无法删除
os.makedirs(r'E:\python_scripts\isli_tools\aaa\bbb\ccc') # 创建多层递归空目录
os.removedirs(r'E:\python_scripts\isli_tools\aaa\bbb\ccc') # 删除多层递归空目录
os.chdir(r'E:\python_scripts\isli_tools\uncle') # 修改当前工作目录到指定目录中去
通过os模块,可以获取当前的绝对路径,并根据这个路径进行模块和目录的新增、修改、删除等操作。
备注:sys 模块主要是与解释器之间的交互,查询和操作相关参数和功能。
3. time 模块
time模块用于查询和处理日期和时间的相关函数。
常用方法如下:
代码语言:python代码运行次数:0运行复制import time
print(time.time()) # 获取时间戳
print(time.localtime().tm_year) # 获取年
print(time.localtime().tm_mon) # 获取月
print(time.localtime().tm_mday) # 获取日
print(time.localtime().tm_hour) # 获取时
print(time.localtime().tm_min) # 获取分
print(time.localtime().tm_sec) # 获取秒
print(time.localtime().tm_wday) # 获取星期几,0为星期一
print(time.localtime().tm_yday) # 获取一年中第几天
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) # 获取年月日时分秒
print(time.strftime('%A %w', time.localtime())) # 获取星期几
print(time.strftime('%j', time.localtime())) # 获取一年中第几天
输出结果为:
代码语言:txt复制1742192051.5828044
2025
3
17
14
14
11
0
76
2025-03-17 14:14:11
Monday 1
076
4. json 模块
json模块是用于处理json数据的标准库,可以把python对象转为json字符串,也可以把json字符串转为python对象。
首先,json 模块最常用的是 dumps() 函数和 loads() 函数。
dumps:将python对象转为json格式的字符串。
loads:将json格式的字符串转为python对象
示例如下:
代码语言:python代码运行次数:0运行复制import json
dict1 = {'name': 'WeiYan', 'age': '17', 'sex': '男'}
json1 = json.dumps(dict1) # dumps,将python对象转为json格式的字符串
json2 = json.dumps(dict1, ensure_ascii=False) # 参数 ensure_ascii=False 禁用 ASCII 转义,保留中文
json3 = json.dumps(dict1, indent=4) # 参数 indent,每一层缩进多少空格
json4 = json.dumps(dict1, separators=(',', ':')) # 参数 separators 自定义json分隔符,默认', ', ':'
dict2 = json.loads(json1) # loads,将json格式的字符串转为python对象
print(json1)
print(json2)
print(json3)
print(json4)
print(dict2)
输出结果为:
代码语言:txt复制{"name": "WeiYan", "age": "17", "sex": "\u7537"}
{"name": "WeiYan", "age": "17", "sex": "男"}
{
"name": "WeiYan",
"age": "17",
"sex": "\u7537"
}
{"name":"WeiYan","age":"17","sex":"\u7537"}
{'name': 'WeiYan', 'age': '17', 'sex': '男'}
dump:将python对象转为json格式并写入文件
load:从文件中读取json数据并转为python对象
示例如下:
代码语言:python代码运行次数:0运行复制import json
dict1 = {'name': 'WeiYan', 'age': '17', 'sex': '男'}
# dump,将python对象转为json格式并写入文件
with open(r'E:\python_scripts\isli_tools\json_file.txt', 'r+', encoding='utf-8') as f:
json.dump(dict1, f, ensure_ascii=False)
# load,从文件中读取json数据并转为python对象
with open(r'E:\python_scripts\isli_tools\json_file.txt', 'r+', encoding='utf-8') as f:
data = json.load(f)
print(data)
输出结果为:
代码语言:txt复制{'name': 'WeiYan', 'age': '17', 'sex': '男'}
5. math 模块
math模块用于处理一些数学运算。
常用的函数如下:
代码语言:python代码运行次数:0运行复制import math
num = -3.14
print(abs(num)) # 求绝对值
print(math.ceil(num)) # 向上取整
print(math.floor(num)) # 向下取整
print(max(2, 1, 3)) # 取最大值
print(min(2, 1, 3)) # 取最小值
print(pow(2, 3)) # 求幂,即2 ** 3
print(math.sqrt(9)) # 求平方根,即 9 ** 0.5
输出结果为:
代码语言:txt复制3.14
-3
-4
3
1
8
3.0
6. print() 方法
print() 是非常实用的方法,了解几种常用的使用方法,可以更灵活的使用。
代码语言:python代码运行次数:0运行复制words = 'WeiYan'
print('查看对象的内存地址:', id(words)) # 查看对象的内存地址
print('使用制表符添加空白:', 'Hello\t World') # 使用制表符添加空白
print('使用换行符换行:', 'Hello\n World') # 使用换行符换行
# 打印多个值时,使用sep参数连接
print('打印多个值时,使用sep参数连接:', 'H', 'e', 'l', 'l', 'o!', sep='-')
# 打印结束时,以'H'字符结尾,默认是换行符'\n'
print('打印结束时,以H字符结尾:', 'Hello World!', end='***')
print()
print('打印多行:', ''''111
222''') # 打印多行
输出结果为:
代码语言:txt复制查看对象的内存地址: 2094263253104
使用制表符添加空白: Hello World
使用换行符换行: Hello
World
打印多个值时,使用sep参数连接:-H-e-l-l-o!
打印结束时,以H字符结尾: Hello World!***
打印多行: '111
222
以及:
代码语言:python代码运行次数:0运行复制# 打印字符串并写入文件,如果文件不存在会自动创建
with open("print_file.txt", "w") as f:
print(words, file=f)
# 打印时如果遇到'\r',会将光标移动到行首,所以这里虽然打印两个hello,但是最后只会显示第二个
print('\rhello1', end='')
print('\rhello2')
输出结果为:
代码语言:txt复制hello2
同时还新生成了一个文件 print_file.txt,内容为 WeiYan
7. 文件读写
文件读、写,是数据处理的基础操作。
7.1. 文件读取
一般使用 open() 函数来读取文件,使用后需要通过 close() 函数关闭文件,否则可能导致内存持续占用、写入数据无效、对文件锁定导致后续无法对该文件进行操作等后果,所以读、写后,必须关闭文件。
代码语言:python代码运行次数:0运行复制# 简单的文件读取,使用后需要关闭文件
f = open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'r+', encoding='utf-8')
data1 = f.read(15) # 读取全部内容,数字作为读取字节长度限制可不传,换行算1字符
data2 = f.readline(20) # 读取一行内容,包括行尾的换行符
data3 = f.readlines(20) # 读取所有行并存为列表
print('读取全部内容:', data1)
print('读取一行内容:', data2)
print('读取所有行并存为列表:', data3)
# 逐行读取,会从当前光标位置开始
for line in f:
print(line.strip())
f.close() # 关闭文件
输出结果为:
代码语言:txt复制读取全部内容: 1111111111
2222
读取一行内容: 222222
读取所有行并存为列表: ['3333333333\n', '4444444444\n']
5555555555
6666666666
7777777777
8888888888
9999999999
0000000000
7.2. 文件写入
使用 open() 函数同样也可以写入文件,传入打开模式w时,是重写整个文件,传入打开模式a是,是在内容的末尾追加。
同样,使用后需要关闭文件
代码语言:python代码运行次数:0运行复制# 重写模式
f = open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'w', encoding='utf-8')
f.write("hello WeiYan.\n")
f.close()
# 追加模式
f = open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'a', encoding='utf-8')
f.write("hello YouZi.")
f.close()
文件内容为:
代码语言:txt复制hello WeiYan.
hello YouZi.
重写时,把文件中原本的内容清除后,写了 hello WeiYan.,并写入一个换行符,于是然后追加时,在第二行写了 hello YouZi.,且没有影响原本第一行的内容。
尤其注意的是,换行是需要手动输入换行符 \n 的
7.3. 使用 with 自动关闭文件
读写文件时,使用 with,这样在运行完 with 里的代码后,会自动关闭文件,不需要再手动关闭。
代码语言:python代码运行次数:0运行复制# 使用 with 写入文件,不需要手动关闭
with open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'w', encoding='utf-8') as f:
f.write('及至始皇,奋六世之余烈,\n振长策而御宇内,吞二周注而亡诸侯,\n履至尊而制六合……威振四海。')
# 使用 with 读取文件,不需要手动关闭
with open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'r', encoding='utf-8') as f:
data = f.read()
文件内容为:
代码语言:txt复制及至始皇,奋六世之余烈,
振长策而御宇内,吞二周注而亡诸侯,
履至尊而制六合……威振四海。
【python】模块导入
1. 模块导入
1.1. 同一目录下,模块导入
即:需要导入的模块 brother_test.py,和当前文件 main.py 是同一个文件夹下的情况。
相当于自己兄弟,是可以直接导入
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── main.py
# └── brother_test.py brother_test.py 中有类 Person,类中有函数 say_hello()
import brother_test # 导入整个模块
weiyan = brother_test.Person()
weiyan.say_hello()
from brother_test import Person # 导入模块中某个类
weiyan = Person()
weiyan.say_hello()
输出就不必贴出来了,不重要。
1.2. 子级目录下,模块导入
即:需要导入的模块 child_test.py,它的父级或者更高级目录,和当前文件 main.py 是同一个文件夹下的情况。
相当于兄弟的儿子,也就是侄子,可以通过兄弟那层关系导入
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── main.py
# └── brother/child_test.py child_test.py 中有类 Person,类中有函数 say_hello()
from brother import child_test # 导入整个模块
weiyan = child_test.Person()
weiyan.say_hello()
from brother.child_test import Person # 导入模块中某个类
weiyan = Person()
weiyan.say_hello()
1.3. 修改sys.path动态添加路径
如果需要导入其他一些结构比较复杂的模块,此时也许不能直接导入,就可以使用修改 sys.path 动态添加路径的方式。
它可以把要导入模块所在的相对路径或者绝对路径,添加到 sys.path 中,这样就可以导入模块。
关于 sys.path:它是 Python 的 sys 模块中的一个内置变量,它是一个列表,用于指定模块的搜索路径。当使用 import 导入某个模块时,python 会对 sys.path 列表中的路径逐一查找,如果找到了,就导入成功,如果找不到,就提示模块不存在。
我们可以先来看看 sys.path 里的内容是什么样:
代码语言:python代码运行次数:0运行复制import sys # 导入 sys 模块
print(type(sys.path)) # 查看 sys.path 数据格式
for path in sys.path: # 打印 sys.path 中的内容
print(path)
输入结果为:
代码语言:txt复制<class 'list'>
E:\python_scripts\isli_tools\father
E:\python_scripts\isli_tools
E:\python_scripts\isli_tools\father
D:\python\python310.zip
D:\python\DLLs
D:\python\lib
D:\python
D:\python\lib\site-packages
D:\python\lib\site-packages\win32
D:\python\lib\site-packages\win32\lib
D:\python\lib\site-packages\Pythonwin
这些都是我在当前 main.py 模块中,可以直接导入的路径。我们可以通过给 sys.path 添加其他路径,来实现导入模块的目的。
传入相对路径:
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── father / main.py
# └── uncle / cousin_test.py cousin_test.py 中有类 Person,类中有函数 say_hello()
# 使用相对路径,导入整个模块
import sys
sys.path.append('../uncle')
import cousin_test
weiyan = cousin_test.Person()
weiyan.say_hello()
# 使用相对路径,导入模块中某个类
import sys
sys.path.append('../uncle')
from uncle.cousin_test import Person
weiyan = Person()
weiyan.say_hello()
传入绝对路径:
代码语言:python代码运行次数:0运行复制# 目录结构:
# project/
# ├── father / main.py
# └── uncle / cousin_test.py cousin_test.py 中有类 Person,类中有函数 say_hello()
# 使用相对路径,导入整个模块
import sys
sys.path.append(r'E:\python_scripts\isli_tools\uncle')
import cousin_test
weiyan = cousin_test.Person()
weiyan.say_hello()
# 使用相对路径,导入模块中某个类
import sys
sys.path.append(r'E:\python_scripts\isli_tools\uncle')
from uncle.cousin_test import Person
weiyan = Person()
weiyan.say_hello()
2. os 模块
os 模块主要是与操作系统之间的交互,查询和操作目录、文件等相关内容。
常用方法如下:
代码语言:python代码运行次数:0运行复制import os
print(os.sep) # 获取当前系统路径分隔符
print(os.name) # 获取当前使用的工作平台,Windows返回nt,Linux和macOS返回posix
print(os.getcwd()) # 获取当前工作目录
print(os.listdir(r'E:\python_scripts\isli_tools\father\brother')) # 获取指定目录下所有目录和文件名
print(os.path.dirname(r'E:\python_scripts\isli_tools\father\main.py')) # 返回文件目录
print(os.path.basename(r'E:\python_scripts\isli_tools\father\main.py')) # 返回文件名
print(os.path.getsize('main.py')) # 获取文件大小
print(os.path.abspath('main.py')) # 获取绝对路径
print(os.path.join(r'E:\python_scripts\isli_tools', 'base.py')) # 连接目录与文件名,或者目录与目录
print(os.path.exists(r'E:\python_scripts\isli_tools\base\base.py')) # 判断文件或目录是否存在,返回布尔值
print(os.path.isfile(r'E:\python_scripts\isli_tools\base\base.py')) # 判断是否为文件,返回布尔值
print(os.path.isdir(r'E:\python_scripts\isli_tools')) # 判断是否为目录
os.mkdir(r'E:\python_scripts\isli_tools\new_dir') # 创建一个目录,如果已存在则不可创建
os.rename(r'E:\python_scripts\isli_tools\new_dir', r'E:\python_scripts\isli_tools\old_dir') # 重命名文件或目录
os.rmdir(r'E:\python_scripts\isli_tools\old_dir') # 删除一个空目录,如果里面有文件,无法删除
os.makedirs(r'E:\python_scripts\isli_tools\aaa\bbb\ccc') # 创建多层递归空目录
os.removedirs(r'E:\python_scripts\isli_tools\aaa\bbb\ccc') # 删除多层递归空目录
os.chdir(r'E:\python_scripts\isli_tools\uncle') # 修改当前工作目录到指定目录中去
通过os模块,可以获取当前的绝对路径,并根据这个路径进行模块和目录的新增、修改、删除等操作。
备注:sys 模块主要是与解释器之间的交互,查询和操作相关参数和功能。
3. time 模块
time模块用于查询和处理日期和时间的相关函数。
常用方法如下:
代码语言:python代码运行次数:0运行复制import time
print(time.time()) # 获取时间戳
print(time.localtime().tm_year) # 获取年
print(time.localtime().tm_mon) # 获取月
print(time.localtime().tm_mday) # 获取日
print(time.localtime().tm_hour) # 获取时
print(time.localtime().tm_min) # 获取分
print(time.localtime().tm_sec) # 获取秒
print(time.localtime().tm_wday) # 获取星期几,0为星期一
print(time.localtime().tm_yday) # 获取一年中第几天
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) # 获取年月日时分秒
print(time.strftime('%A %w', time.localtime())) # 获取星期几
print(time.strftime('%j', time.localtime())) # 获取一年中第几天
输出结果为:
代码语言:txt复制1742192051.5828044
2025
3
17
14
14
11
0
76
2025-03-17 14:14:11
Monday 1
076
4. json 模块
json模块是用于处理json数据的标准库,可以把python对象转为json字符串,也可以把json字符串转为python对象。
首先,json 模块最常用的是 dumps() 函数和 loads() 函数。
dumps:将python对象转为json格式的字符串。
loads:将json格式的字符串转为python对象
示例如下:
代码语言:python代码运行次数:0运行复制import json
dict1 = {'name': 'WeiYan', 'age': '17', 'sex': '男'}
json1 = json.dumps(dict1) # dumps,将python对象转为json格式的字符串
json2 = json.dumps(dict1, ensure_ascii=False) # 参数 ensure_ascii=False 禁用 ASCII 转义,保留中文
json3 = json.dumps(dict1, indent=4) # 参数 indent,每一层缩进多少空格
json4 = json.dumps(dict1, separators=(',', ':')) # 参数 separators 自定义json分隔符,默认', ', ':'
dict2 = json.loads(json1) # loads,将json格式的字符串转为python对象
print(json1)
print(json2)
print(json3)
print(json4)
print(dict2)
输出结果为:
代码语言:txt复制{"name": "WeiYan", "age": "17", "sex": "\u7537"}
{"name": "WeiYan", "age": "17", "sex": "男"}
{
"name": "WeiYan",
"age": "17",
"sex": "\u7537"
}
{"name":"WeiYan","age":"17","sex":"\u7537"}
{'name': 'WeiYan', 'age': '17', 'sex': '男'}
dump:将python对象转为json格式并写入文件
load:从文件中读取json数据并转为python对象
示例如下:
代码语言:python代码运行次数:0运行复制import json
dict1 = {'name': 'WeiYan', 'age': '17', 'sex': '男'}
# dump,将python对象转为json格式并写入文件
with open(r'E:\python_scripts\isli_tools\json_file.txt', 'r+', encoding='utf-8') as f:
json.dump(dict1, f, ensure_ascii=False)
# load,从文件中读取json数据并转为python对象
with open(r'E:\python_scripts\isli_tools\json_file.txt', 'r+', encoding='utf-8') as f:
data = json.load(f)
print(data)
输出结果为:
代码语言:txt复制{'name': 'WeiYan', 'age': '17', 'sex': '男'}
5. math 模块
math模块用于处理一些数学运算。
常用的函数如下:
代码语言:python代码运行次数:0运行复制import math
num = -3.14
print(abs(num)) # 求绝对值
print(math.ceil(num)) # 向上取整
print(math.floor(num)) # 向下取整
print(max(2, 1, 3)) # 取最大值
print(min(2, 1, 3)) # 取最小值
print(pow(2, 3)) # 求幂,即2 ** 3
print(math.sqrt(9)) # 求平方根,即 9 ** 0.5
输出结果为:
代码语言:txt复制3.14
-3
-4
3
1
8
3.0
6. print() 方法
print() 是非常实用的方法,了解几种常用的使用方法,可以更灵活的使用。
代码语言:python代码运行次数:0运行复制words = 'WeiYan'
print('查看对象的内存地址:', id(words)) # 查看对象的内存地址
print('使用制表符添加空白:', 'Hello\t World') # 使用制表符添加空白
print('使用换行符换行:', 'Hello\n World') # 使用换行符换行
# 打印多个值时,使用sep参数连接
print('打印多个值时,使用sep参数连接:', 'H', 'e', 'l', 'l', 'o!', sep='-')
# 打印结束时,以'H'字符结尾,默认是换行符'\n'
print('打印结束时,以H字符结尾:', 'Hello World!', end='***')
print()
print('打印多行:', ''''111
222''') # 打印多行
输出结果为:
代码语言:txt复制查看对象的内存地址: 2094263253104
使用制表符添加空白: Hello World
使用换行符换行: Hello
World
打印多个值时,使用sep参数连接:-H-e-l-l-o!
打印结束时,以H字符结尾: Hello World!***
打印多行: '111
222
以及:
代码语言:python代码运行次数:0运行复制# 打印字符串并写入文件,如果文件不存在会自动创建
with open("print_file.txt", "w") as f:
print(words, file=f)
# 打印时如果遇到'\r',会将光标移动到行首,所以这里虽然打印两个hello,但是最后只会显示第二个
print('\rhello1', end='')
print('\rhello2')
输出结果为:
代码语言:txt复制hello2
同时还新生成了一个文件 print_file.txt,内容为 WeiYan
7. 文件读写
文件读、写,是数据处理的基础操作。
7.1. 文件读取
一般使用 open() 函数来读取文件,使用后需要通过 close() 函数关闭文件,否则可能导致内存持续占用、写入数据无效、对文件锁定导致后续无法对该文件进行操作等后果,所以读、写后,必须关闭文件。
代码语言:python代码运行次数:0运行复制# 简单的文件读取,使用后需要关闭文件
f = open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'r+', encoding='utf-8')
data1 = f.read(15) # 读取全部内容,数字作为读取字节长度限制可不传,换行算1字符
data2 = f.readline(20) # 读取一行内容,包括行尾的换行符
data3 = f.readlines(20) # 读取所有行并存为列表
print('读取全部内容:', data1)
print('读取一行内容:', data2)
print('读取所有行并存为列表:', data3)
# 逐行读取,会从当前光标位置开始
for line in f:
print(line.strip())
f.close() # 关闭文件
输出结果为:
代码语言:txt复制读取全部内容: 1111111111
2222
读取一行内容: 222222
读取所有行并存为列表: ['3333333333\n', '4444444444\n']
5555555555
6666666666
7777777777
8888888888
9999999999
0000000000
7.2. 文件写入
使用 open() 函数同样也可以写入文件,传入打开模式w时,是重写整个文件,传入打开模式a是,是在内容的末尾追加。
同样,使用后需要关闭文件
代码语言:python代码运行次数:0运行复制# 重写模式
f = open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'w', encoding='utf-8')
f.write("hello WeiYan.\n")
f.close()
# 追加模式
f = open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'a', encoding='utf-8')
f.write("hello YouZi.")
f.close()
文件内容为:
代码语言:txt复制hello WeiYan.
hello YouZi.
重写时,把文件中原本的内容清除后,写了 hello WeiYan.,并写入一个换行符,于是然后追加时,在第二行写了 hello YouZi.,且没有影响原本第一行的内容。
尤其注意的是,换行是需要手动输入换行符 \n 的
7.3. 使用 with 自动关闭文件
读写文件时,使用 with,这样在运行完 with 里的代码后,会自动关闭文件,不需要再手动关闭。
代码语言:python代码运行次数:0运行复制# 使用 with 写入文件,不需要手动关闭
with open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'w', encoding='utf-8') as f:
f.write('及至始皇,奋六世之余烈,\n振长策而御宇内,吞二周注而亡诸侯,\n履至尊而制六合……威振四海。')
# 使用 with 读取文件,不需要手动关闭
with open(r'E:\python_scripts\isli_tools\father\print_file.txt', 'r', encoding='utf-8') as f:
data = f.read()
文件内容为:
代码语言:txt复制及至始皇,奋六世之余烈,
振长策而御宇内,吞二周注而亡诸侯,
履至尊而制六合……威振四海。
本文标签: python模块导入
版权声明:本文标题:【python】模块导入 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748234542a2273174.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论