- 文件外部(不涉及文件内的数据):其他相关的模块、目录的操作
创建目录:
明确路径:相对路径或绝对路径
绝对路径是一个文件实际存在于硬盘中的路径。(可在电脑文件夹中找到)
相对路径是与自身的目标档案相关的位置。(不可…)
import os,shutil
os.mkdir(r'E:\test') # 绝对路径
os.mkdir(r'test2') # 相对路径
- 针对文件进行copy
shutil.copy(r'E:\test\1.txt',r'E:\text\2.txt')
对文件的操作
- 打开文件:指定路径+文件名 mode=’ 访问模式 ’ encoding=‘utf-8’或’gbk’
文件能否成功打开,返回一个文件对象(指针)
#法一: 最佳,会自动释放资源
with open(r'E:\test\abc.txt',mode='r+',encoding='gbk') as fp
#法二:
fp = open(r'E:\test\abc.txt',mode='r+',encoding='gbk')
文件访问模式:
- 文件的读与写
fp.write('hello\n')
fp.write('Joey does not share food!\n')
print(fp.read())
print('===========================')
fp.seek(0) # 定位读写:光标重新定位,开始。1:当前位置。2:文件末尾
print(fp.readline()) #一行一行地读数据
print('===========================')
print(fp.readlines())
- 文件关闭
fp.close()
案列
查询指定目录(路径,如:E;\)下的某种类型文件(txt文件)并返回其文件大小、修改时间。
#使用函数的定义及调用——递归调用
import os,shutil
def searchfile(filepath):
#针对给的目录,判断是否存在系统中
if not os.path.isdir(filepath):
return
#遍历其内的所有对象,是一个目录或是一个文件
for i in os.listdir(filepath): #获取目录列表
temp = os.path.join(filepath,i)
if os.path.isdir(temp):
#解决方案:递归调用它,并把此时的路径传递给该函数
searchfile(temp)
if os.path.isfile(temp) and os.path.splitext(temp)[1]=='.txt':
#os.path.splitext(path) 切分文件扩展名
#判断是不是文件[0],是不是txt[1]
#解决方案:输出其大小及修改时间
print(temp,os.path.getsize(temp),os.path.getmtime(temp))
# 返回包含一个时间戳
if __name__='__main__':
searchfile(r'E:\test')
CSV
CSV用逗号间隔
import csv
with open(r'E:\test\hr.csv',mode='r',encoding='gbk') as fp:
csvfile = csv.reader(fp)
for row in csvfile:
print(row)