Python编程基础

Posted 雨宙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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编程基础的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

python编程基础

编程思想与算法

python编程基础之一

常用编程思想与算法

Python全栈自动化系列之Python编程基础(异常捕获)