由于最近在入门爬虫,接触到了很多地方需要掌握到对于文件的熟悉以及操作,所以我就通过网络平台总结了一些常用的文件基本用法及操作,并且一一在Python3.6.4的环境基础下进行了逐一实例实现,把总结下来的经验与成果·拿在这里和大家一起分享,为同学Python爬虫的同志添砖加瓦。
Grammar:open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
参数说明:一般我们会用到以下三个参数:
Introduction:close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作,否则会触发ValueError错误。close()方法允许调用多次。
Notice:当file对象,被引用到操作另外一个文件时,Python会自动关闭之前的file对象。 使用close()方法关闭文件是一个好的习惯。
读取操作练习的代码实现如下:
# 读取文件内容
try:
f = open('D:\Richard_exercise.txt', 'r') # 原路径
print (f.read())
finally:
if f:
f.close()
with open('.\Richard_exercise.txt', 'r') as fileReader:
for line in fileReader.readlines():
print (line.strip())
读文件,文件对象的read(),readline(),readlines()方法
f.read([size]): size为读取的长度,以byte为单位;
f.readline([size]): 读一行,如果定义了size,有可能返回的只是一行的一部分;
f.readlines(): 把文件每一行作为一个列表的一个成员,并返回这个列表。它的内部是通过循环调用readline()来实现的。
Notice:注意打开文件时要给文件对象读的权限。
写入操作练习的代码实现如下:
# 文件的写入练习
f = open('.\Richard_exercise.txt', 'w')
f.write('I love Weiwei')
f.flush()
n = input('输入回车')
f.close()
with open('.\Richard_exercise.txt', 'w') as fileWriter:
fileWriter.write("I only love Weiwei")
fileWriter.flush()
n = input('键入回车')
fileWriter.close()
# coding=utf-8
f = open('D:\example.txt','w')
# 将写入属性“w”改为属性“a”,表示循环写入
list = ['frog',' ','cat',' ','dog']
f.writelines(list)
f.close()
Explanation:上述代码可以将list中的元素写入D盘下的example.txt文件,文件中会出现如下内容:frog cat dog。
注意:writelines()方法不会为每一个元素自动添加换行。
os 模块的操作练习使用代码实现如下:
# os 模块的练习使用
import os
direction_path = os.getcwd() # 获取当前python脚本工作的目录路径
print(direction_path)
file_direction = os.listdir("d:\\") # 返回所有文件名和目录名
print(file_direction)
os.remove(r"F:\Richard_exercise_remove.txt") # 删除一个文件,其中'r'为·防止转义字符
os.removedirs(r"E:\new_build") # 删除多个空目录
print(os.path.isfile(r".\Richard_exercise")) # 路径是否为文件
print(os.path.isdir(r".\Richard_exercise")) # 路径是否为目录
print(os.path.isabs(r".\Richard_exercise")) # 判断绝对路径
print(os.path.exists(r".\Richard_exercise.txt")) # 判断路径是否存在
print(os.path.split(r".\Richard_exercise.txt")) # 分离路径和文件名
print(os.path.splitext(r".\Richard_exercise.txt")) # 分离拓展名
print(os.path.dirname(r"F:\Computer\Computer_Python\File_operation_exercise\Richard_exercise")) # 获取路径名
print(os.path.basename(r"F:\Computer\Computer_Python\File_operation_exercise\Richard_exercise")) # 获取文件名
os.getenv() && os.putenv() # 分别为读取和设置环境变量,有机会举几个例子
os.linesep # 平台的行终止符 Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’
print(os.name) # 指示出正在使用的平台,Windows是‘nt’而Linux/Unix是‘posix’
os.rename(".\Richard_exercise.txt", ".\Richard_new_exercise.txt") # 重命名文件或者目录
os.makedirs(r".\Richard_exercise") # 创建多级目录(文件夹)
os.mkdir("Richard") # 创建单个目录
print(os.stat(".\Richard_exercise")) # 获取文件属性
os.chmod(path, mode) # 修改文件权限与时间戳
print(os.path.getsize(r".\Richard_new_exercise.txt")) # 获取文件大小
os.rmdir(r"F:\Computer\Computer_Python\Exercise\Richard_exercise") # 删除空目录
shutil 模块的操作练习使用代码实现如下:
# 对于shutil模块的运用及练习
import shutil
shutil.copytree(".\Richard_exercise", (".\Richard_new_exercise")) # 复制文件夹
shutil.copyfile(r".\Richard_new_exercise.txt", r".\Richard_exercise.txt") # 复制文件
shutil.copy(r".\Richard_exercise.txt", r"F:\Computer\Computer_Python\Exercise") # 复制文件,可以指明目标目录
shutil.move(r"Richard_exercise", r"F:\Computer\Computer_Python\Exercise")
shutil.rmtree(r"F:\Computer\Computer_Python\Exercise\remove") # 删除目录不论是否具有内容
做完这些操作练习之后,希望大家对于文件的基本操作能够铭记于心,掌握好语法架构与具体运用到的不同参数的含义及使用,能够做到在没有任何参考资料的情况之下,结合自己所要达到的目的,自己编写出相应的代码程序,并且去实现它,这样的一种能力,才是真正属于你的东西。接下来,你就可以身上扛起这项能力,去敲Python爬虫的门啦,放肆的去探索、去体验吧!