Python基础(九)

1.打开文件

        打开文件用open函数,可以打开一个存在的文件或者创建一个新的文件。

open('文件名称','打开模式')
file1=open('./Text.txt','w')
file2=open('./Text.txt2','w',encoding='utf-8')

2.写文件

file1.write('写入内容')

        若以二进制模式进行写入,要给文件输入一个二进制形式的内容:

'写入内容'.encode('utf-8')
默认编码格式为gbk

3.读文件

        读取文件read(),将文件内容全部读取出来。

file1=open('./text.txt','wb')
content='hello'.encode('utf-8')
file1.write(content)
file1.close()

f=open('text.txt','r')
print(f.read())
f.close()
file1=open('./text.txt','w')
content='你好吗同学\nhahaha\nhello world'
file1.write(content)
file1.close()
f=open('text.txt','rb')
print(f.read().decode('gbk'))
f.close()

 

        读取指定字符个数,read(num)传入一个数字作参数,表示读取指定的字符个数。(不是字节数)

file1=open('./text.txt','w')
content='你好吗同学'
file1.write(content)
file1.close()
f=open('text.txt','r')
print(f.read(2))
f.close()
#输出你好

        按行读取,readlines(),一次读取所有内容,返回一个列表,每一行内容作为一个元素。

        readline()则是读取一行内容。

二进制读写适用于图片,视频,音频的文件读写
二进制读写要注意编码问题,默认情况下写入文件的编码为gbk
使用追加方式去写文件注意是在原有文件指针的基础上去追加。

4.with上下文管理

        不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后关闭已经打开的文件,以释放内存。

with open('text.txt','w') as f1:
    f1.write('hello world\nhello python')
with open('text.txt','r') as f2:
    print(f2.read())

5.实例:文件备份

#备份text.txt文件
def copy_file():
    old_name=input('please enter the filename to copy:')
    file_list=old_name.split('.')
    new_name=file_list[0]+'备份.'+file_list[1]
    try:
        with open(old_name,'r') as f_old,open(new_name,'a') as f_new:
            while True:
                content=f_old.read(1024)#一次性读取1024个字符
                f_new.write(content)
                if len(content)<1024:
                    break
    except Exception as msg:
        print(msg)

copy_file()

6.文件定位

        文件定位指的是文件指针,在读写文件时想要知道当前的位置,可以使用tell()函数。

# 文件内容
# hello world
# hello python
f=open('text.txt','r')
content=f.read(4)
print(content)
print(f.tell())

# 输出
# hell
# 4

        在操作文件过程中,需要定位到其它位置进行操作,用seek()

seek() 方法的基本语法如下:

file.seek(offset, whence)
offset 是相对于某个参考点(由 whence 参数指定)的字节偏移量。
whence 参数是一个可选参数,它决定了从哪个位置开始计算 offset。它有三个可能的值:
0(或 os.SEEK_SET):从文件开头开始计算偏移量(默认值)。
1(或 os.SEEK_CUR):从当前文件位置开始计算偏移量。
2(或 os.SEEK_END):从文件末尾开始计算偏移量。

注意:用'r'方式打开文件,而不用'rb'的话,只允许从文件的开头计算相对位置。

 7.导入模块

        在Python编程语言中,import 是一个关键字,用于导入其他模块(module)或库(library)中的代码到你的程序中。通过导入模块或库,你可以使用那些模块或库中定义的函数、类、变量等。

导入整个模块:import math
导入模块并为其指定别名:import math as m
从模块中导入特定的函数或变量:from math import sqrt
从模块中导入多个特定的函数或变量:from math import sqrt, pow
从模块中导入所有内容:from math import *  

8.制作模块

在Python中,制作一个模块是相对简单的。模块通常是一个包含Python定义和语句的文件。文件名就是模块名,文件扩展名为.py。
步骤 1: 编写模块代码
首先,需要创建一个.py文件,并在其中编写Python代码。
# my_module.py   
# 定义一个变量  
my_variable = "Hello from my_module!"    
# 定义一个函数  
def my_function(name):  
    return f"Hello, {name}!"  
# 定义一个类  
class MyClass:  
    def __init__(self, value):  
        self.value = value        
    def display(self):  
        print(self.value)
步骤 2: 保存文件
将上述代码保存为my_module.py文件。
步骤 3: 使用模块
现在,可以在其他Python脚本中导入并使用这个模块了。
# 导入整个模块  
import my_module  
  
# 使用模块中的变量  
print(my_module.my_variable)  # 输出: Hello from my_module!  
  
# 使用模块中的函数  
print(my_module.my_function("World"))  # 输出: Hello, World!  
  
# 使用模块中的类  
obj = my_module.MyClass("Hello from MyClass")  
obj.display()  # 输出: Hello from MyClass


避免使用与Python标准库中的模块同名的模块名,以免产生冲突
如果模块需要依赖于其他模块或包,确保在模块文件的开头使用import语句正确地导入它们。

9.其它知识点

在Python中,if __name__ == '__main__': 是一个常见的模式,
用于判断一个Python脚本是作为主程序运行还是被导入为一个模块。
__name__ 是一个内置变量,它表示当前模块的名字。
当一个Python文件被直接运行时,__name__ 的值会被设置为 '__main__'。
但是,如果这个文件被导入为一个模块,__name__ 的值就会被设置为该模块的名字
(即不带 .py 扩展名的文件名)。
在Python模块中,__all__ 是一个特殊的变量,
用于控制当使用 from module import * 语句时哪些名字
(即变量、函数、类等)应该被导入。

__all__ = ["func1","func2","func3"]

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值