IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python编程基础(四) -> 正文阅读

[Python知识库]Python编程基础(四)

Python编程基础(四)

打卡第四天啦!!!

文件操作与模块

文件打开关闭

  1. 文件打开模式:
    (1)w:打开一个文件只用于写入,如果该文件已存在则将其覆盖,如果该文件不存在,创建新文件
# 打开文件
# 默认编码是GBK
fobj=open('./Test.txt','w')
# 开始操作 读写操作
fobj.write('潘小雷的Python之旅')
fobj.close()

(2)wb:以二进制格式打开一个文件只用于写入,如果该文件已存在则将其覆盖,如果该文件不存在,创建新文件

# 以二进制形式去写数据
fobj=open('Test.txt','wb')
fobj.write('潘小雷的Python之旅'.encode('utf-8'))
fobj.close()

(3)a:打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾,也就是说,新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入

fobj=open('Test.txt','a')
fobj.write('潘小雷的Python之旅\r\n')
fobj.write('人生苦短,我学Python\r\n')
fobj.close()

(4)r:以只读方式打开文件,文件指针将会放在文件的开头,这是默认模式

# 读数据操作
f=open('Test.txt','r')
print(f.read()) # 读取所有数据
# 潘小雷的Python之旅
# 人生苦短,我学Python
print(f.read(6))
# 潘小雷的Py
print(f.readline())
# 潘小雷的Python之旅
f=open('Test.txt','rb')
data=f.read()
print(data,type(data))
b=data.decode('GBK')
print(b,type(b))
# b'\xc5\xcb\xd0\xa1\xc0\xd7\xb5\xc4Python\xd6\xae\xc2\xc3\r\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd1\xa7Python' <class 'bytes'>
# 人生苦短,我学Python <class 'str'>

with上下文管理

  1. 优点:自动释放打开关联的对象
with open('Test.txt','r') as f:
    print(f.read())
# 潘小雷的Python之旅
# 人生苦短,我学Python

案例:备份文件

def copyFile():
    # 输入的文件名
    old_file=input('请输入要备份的文件名:')
    file_list=old_file.split('.')
    # 构造新的文件名
    new_file=file_list[0]+'_备份.'+file_list[1]
    old_f=open(old_file,'r') # 打开需要备份文件
    new_f=open(new_file,'w') # 以写的模式打开新文件,不存在则创建
    content=old_f.read() # 提取文件内容
    new_f.write(content) # 将读取内容写入备份文件
    old_f.close()
    new_f.close()
    pass
copyFile()
def copyFile():
    # 输入的文件名
    old_file=input('请输入要备份的文件名:')
    file_list=old_file.split('.')
    # 构造新的文件名
    new_file=file_list[0]+'_备份.'+file_list[1]
    try:
        with open(old_file,'r') as old_f,open(new_file,'w') as new_f:
            while True:
                content=old_f.read(1024) # 一次读取1024字符
                new_f.write(content)
                if len(content)<1024:
                    break
    except Exception as msg:
        print(msg)

    pass
copyFile()

文件定位

  1. 文件定位,指的是当前文件指针读取到的位置,光标位置,在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取
# 对于中文讲,每次读取到的一个汉字,实际占用两个字符
with open('Test.txt','r') as f:
    print(f.read(3))
    print(f.tell())
    pass
# 潘小雷
# 6
fobjB=open('Test.txt','r')
print(fobjB.read())
fobjB.close()
print('------------截取之后的数据------------')
fobjA=open('Test.txt','r+')
fobjA.truncate(10)
print(fobjA.read())
fobjA.close()
# 潘小雷的Python之旅
# ------------截取之后的数据------------
# 潘小雷的Py
# seek 控制光标所在位置
with open('Test.txt','rb') as f:
    data=f.read(6)
    print(data.decode('gbk'))
    f.seek(-4,1)
    dataA=f.read(4)
    print(dataA.decode('gbk'))
    pass
# 潘小雷
# 小雷
  1. 在文本文件中,没有使用二进制的选项打开文件,只允许从文件的开头计算相对位置

模块

import导入模块

  1. import首次导入模块时会发生如下三步操作
    (1)打开模块文件
    (2)执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
    (3)在程序中会有一个模块的名称指向模块的名称空间去
  2. from…import 只想导入模块中的几个函数
  3. 加别名 import…as…

Python-os模块使用

import os
# 重命名
os.rename('Test.txt','Test1.txt')
# 删除文件
os.remove('Test1.txt')
# 创建文件夹 只能创建一级目录
os.mkdir('Test')
# 删除文件夹 只能删除空目录
os.rmdir('Test')
# 获取当前目录
print(os.getcwd())
# C:\pycharm_workspace\hello
# 路径拼接
print(os.path.join(os.getcwd(),'venv'))
# C:\pycharm_workspace\hello\venv
# 获取目录列表
listRs=os.listdir('C:\pycharm_workspace')
for dirname in listRs:
    print(dirname)
with os.scandir('C:\pycharm_workspace') as entries:
    for entry in entries:
        print(entry.name)
        pass
    pass
# hello
# hello

模块制作

  1. 模块定义:在Python当中,一个.py文件就是一个模块
  2. 作用:可以使我们有逻辑地去组织我们的Python代码,以库的形式去封装功能,非常方便去让调用者去使用,并且可以定义函数类和变量,也能包含可执行的代码
  3. 不同的模块可以定义相同的变量名,但是每个模块中的变量名作用域只在本模块
  4. 模块分为内置模块、自定义模块、第三方模块
  5. 如果一个文件中存在__all__变量,那么也就意味着这个变量中的元素会被from XXX import *时被导入,但对于import方式不影响
__all__=['add','diff','printInfo']
def add(x,y):
    return x+y
def diff(x,y):
    return x-y
def printInfo():
    print('自定义方法')
if __name__=='__mian__':
    print('模块__name__变量:{}'.format(__name__))
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:09:46  更:2021-08-04 11:10:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/12 16:28:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码