门户网站是内网还是外网,wordpress前台配色,企业网络,郑州网站优化汉狮网络目标 文件的打开和关闭
mode缺省情况下表示只读r 文件的路径
前面加个r’,代表其中的转义字符不起作用
文件的打开方式 案例#xff1a;实现文件拷贝的功能
将某一文件夹下的某一文件 保存在当前文件 所在目录。 import os
#读取文件1
path./file.txt
fileopen(path,…目标 文件的打开和关闭
mode缺省情况下表示只读r 文件的路径
前面加个r’,代表其中的转义字符不起作用
文件的打开方式 案例实现文件拷贝的功能
将某一文件夹下的某一文件 保存在当前文件 所在目录。 import os
#读取文件1
path./file.txt
fileopen(path,r,encodingutf-8)
wordsfile.read()
file.close()#写入文件2
path2./file2.txt
print(os.listdir(./))
file2open(path2,x,encodingutf-8)
file2.write(words)
file2.close()
#读取文件2
file2open(path2,r,encodingutf-8)
print(file2.read())
file2.close()文件路径分割os模块
1.字符串 2.os模块
案例多个文件递归复制
文件复制 设你的文件夹p1下包含多个文件p2为空文件夹编写函数使其能将p1下的文件复制到p2中 写法1
# path1 ../lesson12
# path2 ./path2
path1input(请输入要拷贝的文件路径)
path2input(请输入空的文件路径)
# 请输入要拷贝的文件路径D:\\School\\Undergraduate\\考研学习\\C语言
# 请输入空的文件路径C:\\Users\\DQ\Desktop\\test
import osdef createFile(path1, path2):#注意在这里不要指明编码格式因为有些文件过于复杂可能字符集不能表示完#rb:以二进制的形式读取file1 open(path1, rb)words file1.read()#wb以二进制的形式写入文件w:如果文件不存在会创建文件如果文件存在就覆盖文件file2 open(path2, wb)file2.write(words)file1.close()file2.close()def copyFunction(path1, path2):oldPath os.listdir(path1)for i in oldPath:oldPath path1 / inewPath path2 / iif os.path.isfile(oldPath):# 如果文件不存在才创建文件if not os.path.exists(newPath):createFile(oldPath, newPath)elif os.path.isdir(oldPath):# 如果是文件夹不存在才创建if not os.path.exists(newPath):# 创建文件夹os.mkdir(newPath)# 不管是否需要创建文件夹都要递归新的文件夹路径copyFunction(oldPath, newPath)copyFunction(path1, path2)
写法2
import os
def copyFile(srcFile,destFile):fileInputopen(srcFile,moderb)fileOutputopen(destFile,modewb)fileOutput.write(fileInput.read())fileOutput.close()fileInput.close()def copyDir(srcDir,destDir):for s in os.listdir(srcDir):newPath os.path.join(srcDir, s)destPath os.path.join(destDir, s)if os.path.isdir(newPath):os.mkdir(destPath)copyDir(newPath,destPath)elif os.path.isfile(newPath):copyFile(newPath,destPath)
srcDirinput(请输入需要复制的文件夹)
destDirinput(请输入目标空文件夹)
copyDir(srcDir,destDir)
案例递归删除多个文件
遍历删除含有多个文件的文件夹
# author:dq
# project:PythonProject
# date:2021年10月28日
# function:遍历删除含有多个文件的文件夹。
import ospath D:/CodeProject/Python_DQ/PythonProject/pythonProject/lesson13/path2
#pathinput(请输入文件路径)def delete(path):# 判断文件是否存在if os.path.exists(path):# 如果是文件就直接删除if os.path.isfile(path):os.remove(path)# 如果是文件夹elif os.path.isdir(path):# 如果文件夹为空就就直接删除if not os.listdir(path):os.rmdir(path)# 如果文件夹不为空,就进入新的文件夹递归else:for i in os.listdir(path):#拼接获取新的文件路径newPathos.path.join(path,i)delete(newPath)#再逐一删除外层的文件夹os.rmdir(path)delete(path)
CSV文件
关系型数据库表格二维数据
CSV文件读取与写入学习
newline‘’识别换行符空字符串 使用代码
#author:dq
#project:PythonProject
#date:2021年11月01日
#function:csv文件的读写#读取csv
import csvpath./information.csv
fileopen(path,w,encodingutf-8,newline)
wcsv.writer(file)w.writerow([name,age,gender])
w.writerow([dq,20,female])
w.writerow([dd,20,man])
w.writerow([rwq,20,female])
file.close()#写入CSV
fileopen(path,r,encodingutf-8,newline)
rcsv.reader(file)
for data in r:print(data)
将数据写入内存了解即可 把print输出的内容输出到到文件流内存 print是输出之后进行换行 file是一个文件对象
序列化和反序列化 序列化与反序列化json json序列化与反序列化的方法 案例代码
#author:dq
#project:PythonProject
#date:2021年11月01日
#function:序列化与反序列化json#写入
import json
#dumps
path./name.txt
fileopen(path,w,encodingutf-8)#写入内容有会被覆盖
names[dq,dd,java]
contentjson.dumps(names)
file.write(content)
file.close()#dump
fileopen(path,w,encodingutf-8)#追加a
names[dq,java,java]
contentjson.dump(names,file)
file.close()#读取
#load
fileopen(path,r,encodingutf-8)
readjson.load(file)
file.close()
print(read,type(read))#[dq, java, java] class list#loads
content{name:dq,age:18}
pjson.loads(content)
print(p,type(p))#{name: dq, age: 18} class dict序列化与反序列化pickle 代码
#author:dq
#project:PythonProject
#date:2021年11月01日
#function:pickle序列化与反序列化
import pickle
#序列化
#dumps
names[dq,java,Android]
byteContentpickle.dumps(names)
print(byteContent)#写入文件
path./pickle.txt
fileopen(path,wb)
file.write(byteContent)
file.close()#读取文件
file_ropen(path,rb)
#readContentfile_r.read()
readContentpickle.load(file_r)
print(readContent)
file_r.close() 代码
#author:dq
#project:PythonProject
#date:2021年11月01日
#function:pickle序列化与反序列化
import pickle
#序列化
#dumps
names[dq,java,Android]
byteContentpickle.dumps(names)
print(byteContent)#写入文件
path./pickle.txt
fileopen(path,wb)
file.write(byteContent)
file.close()#读取文件
file_ropen(path,rb)
#readContentfile_r.read()
readContentpickle.load(file_r)
print(readContent)
file_r.close()
json和pickle的区别 自动关闭文件with关键字 标准输出和输入了解