文件中的内容
abcd
1234
5678
Open返回一个文件对象
with open('out.txt', 'r') as file:
read(),readline(),readlines()
read():读取全部的文件内容,然会一个字符串,这个字符串是包括换行符的
with open('out.txt', 'r') as file:
content = file.read()
print(content)
abcd
1234
5678
也可以指定读取的个数:(这里注意换行符也会被读取)
with open('out.txt', 'r') as file:
content = file.read(10)
print(content)
abcd
1234
readlines():读取每一行,保存在一个列表中,这里会有换行符\n,所以要用strip将换行符去除
with open('out.txt', 'r') as file:
content = file.readlines()
res = []
for i in content:
res.append(i.strip())
print(res)
['abcd', '1234', '5678']
readline():读取一行,输出为一个字符串,并且有换行符
with open('out.txt', 'r') as file:
content = file.readline()
print(content)
abcd
注意 :这里面的读取都是连续的,比如说用了readlines之后再readline就是为空了
write(all_text)和writelines(list)
write(all_text)是将里面的string类型的文本写入
writelines(list)是将列表里面的所有写入
总结:
两个的区别传入的类型不一样,并且两个都不会自动换行
OS模块
os.mkdir(path):创建新目录,path为一个字符串,表示新目录路径。相当于$mkdir命令
os.rmdir(path):删除空目录,path为一个字符串,表示要删除的目录路径。相当于$rmdir命令
os.listdir(path):返回目录中所有文件。相当于$ls命令。 os.remove(path):删除path指向的文件。
os.remove(path):删除path指向的文件。
os.rename(src, dst):重命名文件,src和dst为两个路径,分别表示重命名之前和之后的路径。
os.chmod(path, mode):改变path指向的文件的权限。相当于$chmod命令。
os.getcwd():查询当前工作路径 (cwd, current working directory),相当于$pwd命令。
os.chdir(path):改变当前工作目录 os.system():执行shell命令
os.system():执行shell命令
OS.path模块(主要用于文件属性的获取)
os.path.dirname(__file__):返回当前python执行脚本的执行路径(看下面的例子),这里__file__为固定参数
os.path.abspath(file):返回一个文件在当前环境中的绝对路径,这里file 一参数
os.path.join(basedir,file): 将file文件的路径设置为basedir所在的路径,这里fbasedir和file都为参数
os.path.split(path):函数返回一个路径的目录名和文件名
os.path.isfile(path)和os.path.isdir(path)函数分别检验给出的路径是一个文件还是目录。
os.path.exists(path):用来检验给出的路径是否真地存在
os.path.basename(path):返回路径path中的文件名
os.path.dirname(path):返回path中的文件夹路径
os.path.splitext():分离文件名与扩展名
os.path.getsize(name):获得文件大小,如果name是目录返回0L
import os
path1 = os.path.dirname(__file__)
path2 = os.path.join(path1, 'out.txt')
path3 = os.path.split(path2)
print(os.path.getsize(path2))
print(os.path.splitext(path2))
print(os.path.basename(path2))
print(os.path.split(path2))
76
('D:\\temp\\Python期末复习\\out', '.txt')
out.txt
('D:\\temp\\Python期末复习', 'out.txt')
进程已结束,退出代码0
Shutil模块
shutil.copy(file_path, dir_path) #从左往右拷贝,如果已经存在就直接覆盖
shutil.move(file_path, dir_path) # 移动到另外一个文件夹中
shutil.move(file_path, new_file_path) # 重命名为新的绝对路径
shutil.copytree(file_path, dir_path) # 拷贝所有文件到新的文件夹下,保持原有
shutil.rmtree(dir_path) # 删除此路径的文件夹
shutil模块的压缩与解压
压缩文件: shutil.make_archive(base_name, ‘zip', root_dir, [base_dir])
base_name : 创建的目标文件名,包括路径,减去任何特定格式的扩展。
format : 压缩包格式。”zip”, “tar”, “bztar”或”gztar”中的一个。
root_dir : 需要打包的文件夹路径。打包完成时存储在上一级目录。
base_dir : 使用后会将base_dir作为路径,解压后有个有层级的文件夹,而仅非只有单独的打包内容。
import shutil
# 创建 ZIP 文件
shutil.make_archive('/path/to/archive_name', 'zip', '/path/to/dir', 'folder')
base_name 是 /path/to/archive_name,表示压缩文件的名称是 archive_name.zip。
format 是 'zip',表示压缩文件的格式是 ZIP。
root_dir 是 /path/to/dir,表示要压缩的根目录。
base_dir 是 folder,表示要压缩的目录是 /path/to/dir/folder。
最终生成的压缩文件路径是 /path/to/archive_name.zip,它包含 folder 目录及其内容
解压文件:
shutil.unpack_archive(filename[, extract_dir[, format]])
filename是压缩文档的完整路径
extract_dir是解压缩路径,默认为当前目录。 format是压缩格式。默认使用文件后缀名代码的压缩格式。"zip", "tar", "bztar"或"gztar"中的一个。
import shutil
# 解压缩 zip 文件
shutil.unpack_archive('example.zip', 'extracted_files')
# 解压缩 tar 文件
shutil.unpack_archive('example.tar.gz', 'extracted_files', 'gztar')
# 不指定格式进行解压缩(根据文件扩展名推测)
shutil.unpack_archive('example.zip', 'extracted_files')
pickle模块用于数据的永久存储
主要是序列化和反序列化
dumps(obj):将 python 对象序列封装成二进制对象,并返回;
loads(bytes_obj):读取给定的二进制对象数据,并将其转换为 Python对象。
import pickle
# 假设我们有一个序列化后的字节数据
serialized_data = b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x05\x00\x00\x00Aliceq\x02X\x03\x00\x00\x00ageq\x03K\x1eu.'
data = pickle.loads(serialized_data)
print(data)
dump(obj, file, protocol=None):将 Python 中的对象序列obj转化成二进制对象,并写入文件file。
load(file):读取指定的序列化数据文件file,并返回原先永久存储的python对象
import pickle
# 假设我们有一个已保存的对象文件 'data.pkl'
with open('data.pkl', 'rb') as file:
data = pickle.load(file)
print(data)
load和loads的区别就在于传入的参数不一样:
一个是传入pickle类型的文件
一个是传入二进制数据流