python 文件处理
- 文件:
- 文本文件:xx.txt xx.log xx.ini
- 二进制文件:xx.mp3 xx.jpg xx.avi
- open()函数:
- 在python中使用文件的关键函数是open()函数。open()函数有两个参数:文件名和模式。
- open()函数有四种不同的打开方法(文件名和模式)
- “r” :读取。默认值。打开文件进行读取,如果文件不存在则报错。
- “a”:追加 。打开供追加的文件,如果不存在则创建该文件。
- ”w“:写入。打开文件进行写入。如果文件不存在则创建该文件。
- ”x“:创建。创建指定的文件。如果文件存在则返回错误。
可以指定文件是应该作为二进制还是文本模式进行处理: - ”t“:文本。默认值。文本模式。
- ”b“:二进制。二进制模式(图像)。
eg:
f = open("demofile.txt")
等同于:
f = open("demofile.txt", "rt")
因为 “r” (读取)和 “t” (文本)是默认值,所以不需要指定。
文件的打开
- 只读取文件的一部分:默认情况下,read()方法返回整个文本,但也可以指定要返回的字符串
eg:
f = open("demofile.txt", "r")
print(f.read(5))
- 读行:可以使用readline()方法返回一行
eg:
f = open("demofile.txt", "r")
print(f.readline())
通过两次调用readline(),可以读取前两行:
f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())
通过循环遍历文件中的行,可以逐行读取整个文件
f = open("demofile.txt", "r")
for x in f:
print(x)
- 关闭文件:完成后始终关闭文件是一个好习惯
f = open("demofile.txt", "r")
print(f.readline())
f.close()
文件写入
- 写入已有文件:如需写入已有的文件,必须向open()函数添加参数:
”a":追加。 会追加到文件的末尾。
”w“: 写入。 会覆盖任何已有的内容。
删除文件
- 删除文件:如需删除文件,必须导入OS模块,并运行os.remove()函数:
import os
os.remove("demofile.txt")
- 删除整个文件夹:使用os.rmdir()方法
import os
os.rmdir("myfolder")
只能删除空文件夹。
python模块
- 模块是包含一组函数的文件。
- 包 : 存放有相互关联的一组pyhon模块的文件夹。init.py 文件。
- pyc : 经过Python编译后的py模块文件,执行速度更快。
- *从包中引用所有模块或从模块中引用所有的函数和变量
- sys是python内置模块,修改或调用python解释器的方法
- 创建模块:创建模块,只需将所需的代码保存在文件扩展名为.py的文件。
- pip命令可以下载安装第三方模块:
- 安装 pip install 模块名
- 卸载 pip uninstall 模块名
- 查看 pip list
- 使用模块:使用import语句
eg:导入名为mymodule模块,调用greeting函数:
import mymodule
mymodule.greeting("Bill")
- 模块中的变量:模块可以包含已经描述的函数,但也可以包含各种类型的变量(数组,字典,对象等):
person1 = {
"name": "Bill",
"age": 63,
"country": "USA"
}
- 重命名模块:在导入模块时候使用as关键字创建别名:
eg:创建别名mx
import mymodule as mx
a = mx.person1["age"]
print(a)
- 内置模块:
- _name _python解释器定义好的内置变量
- 直接运行当前模块时,它的值是“_main _”
- 当模块被引用执行时,它的值是“模块文件的名字” 或者“包.模块名”
print(_name_)
print("你好")
- 当模块被引用时候,不执行
if_ name_=="_main_":
print("你好")
- 使用dir()函数:有一个内置函数可以列出所有的函数名(或者变量名)。dir() 函数可用于所有模块,也可用于您自己创建的模块。
eg:
import platform
x = dir(platform)
print(x)
- print(dir(sys)) 显示模块中所有的函数名和变量名
- print(help(sys)) 查看模块中的帮助文档
- print(sys.path)模块位置,list类型可以修改
- print(sys.version) 显示python解释器的版本
- argv_list = sys.argv 获取参数列表。
- sys.exit() 强制终止程序
- 当执行脚本时,添加-a参数时执行:
if "-a" in argv_list:
print("abcd")
- os模块调用系统的功能
import os
os.system("ipconfig")
os.system("mspaint")
os.system("ping 192.168.10.1")
print(os.name)
print(os.environ)
- 创建多层目录 mkdir -p
os.makedirs("test\\11\\taobao")
- 只能删除空目录 rmdir
os.removedirs("test")
os.removedirs("test\\11\\taobao")
- 创建文件
with open(‘hello.py’,"w") as f:
f.writelines(["print("hello")\n","input()"])
- 删除文件
os.remove("hello.py")
- 查看目录下的所有文件
print (os.listdir("d:\\"))
- 修改文件名
print(os.rename("test.py","new_test.py"))
- 查看文件信息
print(os.stat("new_test.py"))
- 引用模块:可以理解为 将模块在当前脚本中执行
import 模块名
- 从模块导入:使用from关键字选择仅从模块导入部件