目录
1.打开文件(open函数)
2.关闭文件(close函数)
3.向文件中写入内容(write函数)
4.从文件中读取内容
5.打开文件的另一种方式(with open)
6. python中的os模块
7. python中的shutil模块
8.python创建多个文件
9.python生成大小递增文件
10.python创建指定大小的文件
11.windows下生成指定大小的空文件
12.Linux下生成指定大小的文件
1.打开文件(open函数)
变量=open(文件名,访问模式,encoding="utf-8")
变量代表打开的那个文件。
文件名前可以加绝对路径或相对路径。
访问模式:
(1)r(readonly)只读模式
(2)w(write)编辑模式。打开文件不存在,会新建一个文件;编辑文件时,会把文件之前内容覆盖掉。
(3)a(append)追加模式。打开文件不存在,会新建一个文件;编辑文件时,不覆盖之前内容,从文件末尾开始添加。
2.关闭文件(close函数)
变量.close()
3.向文件中写入内容(write函数)
变量.write("写入的内容")
写入的内容:字符串类型
# 定义函数
def file_1():
# r:(raw原始)表示所有字符串不做转义
# 打开文件
file1 = open(r"H:testfilefile2.txt", "a", encoding="utf-8")
# 向文件中写入内容
file1.write("python从入门到入门")
# 关闭文件
file1.close()
#调用函数
if __name__ == '__main__':
file_1()
练习:打开一个文本文件,在文件中写入100句python从入门到入门,关闭文件。
def file_2():
# r:(raw原始)表示所有字符串不做转义
# 打开文件
file2 = open(r"H:testfilefile2.txt", "w", encoding="utf-8")
# 向文件中写入100遍
for i in range(100):
file2.write("python从入门到入门n")
# 关闭文件
file2.close()
# 调用函数
if __name__ == '__main__':
file_2()
4.从文件中读取内容
(1)read函数
读取的内容=变量.read(size)
size读取内容的长度 size是整数。
size如果不指定,默认全部读取;如果指定了负数,也表示全部读取。
功能:读取文件中的全部内容。
# 第一个r:(raw原始)表示所有字符串不做转义,第二个r:只读模式 # 打开文件 file3 = open(r"H:testfilefile3.txt", "r", encoding="utf-8") # 读取文件file3.txt的所有内容,并打印在屏幕上 all_content=file3.read() print(all_content) # 关闭文件 file3.close()
(2)readline函数
读取的一行内容=变量.readline()
功能:从文件中读取一行数据。
# 第一个r:(raw原始)表示所有字符串不做转义,第二个r:只读模式 # 打开文件 file3 = open(r"H:testfilefile3.txt", "r", encoding="utf-8") # 读取文件file3.txt的一行内容 one_content=file3.readline() print(one_content) # 关闭文件 file3.close()
(3)readlines函数
列表类型=变量.readlines()
如果想读取哪一行,可以根据列表中的索引来取那一行。
功能,把文件的内容全部读取,函数返回的结果是列表类型,列表中每一个元素都是一个字符串的类型,每个元素是文件的中的每行内容。
# 第一个r:(raw原始)表示所有字符串不做转义,第二个r:只读模式 # 打开文件 file3 = open(r"H:testfilefile3.txt", "r", encoding="utf-8") # 读取文件file3.txt的指定一行内容 content=file3.readlines() # 打印返回类型 print(type(content)) # 读取第5行内容,列表索引从0开始 hang5=content[4] print(hang5) # 关闭文件 file3.close()
练习:从一个文件中(比如有10行数据)读取全部内容,然后把第3行的内容写到另一个文件中。
def file_3():
# 第一个r:(raw原始)表示所有字符串不做转义,第二个r:只读模式
# 打开文件
file3 = open(r"H:testfilefile3.txt", "r", encoding="utf-8")
# 读取文件file3.txt的指定一行内容
content=file3.readlines()
# 读取第3行内容,列表索引从0开始
hang3=content[2]
# 打开文件
file1 = open(r"H:testfilefile1.txt", "w", encoding="utf-8")
# 将hang3的内容写到file1中
file1.write(hang3)
# 关闭文件
file3.close()
# 调用函数
if __name__ == '__main__':
file_3()
5.打开文件的另一种方式(with open)
with open(文件名,访问模式,encoding=”utf-8”) as 变量:
和open函数的区别:可以自动执行文件关闭操作;不需要自己调用close函数来关闭文件。
def file_4():
# 打开文件
with open(r"H:testfilefile4.txt","w",encoding="utf-8") as file4:
# 写入内容
for i in range(100):
file4.write("pythonn")
# 调用函数
if __name__ == '__main__':
file_4()
6. python中的os模块
对文件进行一些相关的操作。
引入模块:import os
(1)对文件名进行重命名rename函数
os.rename(旧文件名,新文件名)
文件名前面可以加路径。文件找不到,程序报错
(2)删除一个文件remove函数
os.remove(文件名)
文件名前面可以加路径。文件找不到,程序报错
(3)创建文件夹mkdir函数
os.mkdir(文件夹的名字)
文件夹的名字前面可以加路径
(4)删除空的文件夹函数rmdir函数
os.rmdir(文件夹的名字)
文件夹的名字前面可以加路径
# 引入模块 import os # 文件重命名 os.rename(r"H:testfilefile4.txt",r"H:testfilefile4new.txt") # 文件删除 os.remove(r"H:testfilefile2.txt") # 创建文件夹 os.mkdir(r"H:python") # 删除空文件夹 os.rmdir(r"H:python")
7. python中的shutil模块
引入模块:from shutil import rmtree
(1)rmtree函数删除非空的文件夹
rmtree(文件夹名字)
# 引入模块 from shutil import rmtree # 删除非空的文件夹 rmtree(r"H:testfile")
8.python创建多个文件
# 引入模块
import os
# 要存放文件的路径
path=r"H:testfile"
# 查看当前路径
os.getcwd()
# 切换到的路径
os.chdir(path)
# 文件前缀
file_prefix = 'test'
# 文件后缀
file_suffix = '.txt'
# 文件个数
file_num = 1000
for i in range(1, file_num ):
# 文件名
file_name = file_prefix + str(i) + file_suffix
# 打开文件,写入内容
file = open(file_name ,'w', encoding="utf-8")
file.write("python文件")
# 关闭文件
file.close()
9.python生成大小递增文件
# 生成10个文件从1MB到10MB
for i in range(1,11):
with open(r'H:testfile\'+str(i)+"MB.txt","w",encoding="utf-8")as f:
# 1024KB,1024*1024MB,1写入的内容
f.write(i*1024*1024*'1')
10.python创建指定大小的文件
import time
# 获取时间和日期
def getnowdatatime(flag=0):
now = time.localtime(time.time())
if flag == 0:
return time.strftime('%Y-%m-%d %H:%M:%S', now)
if flag == 1:
return time.strftime('%Y-%m-%d', now)
if flag == 2:
return time.strftime('%H:%M:%S', now)
if flag == 3:
return time.strftime('%Y%m%d-%H%M%S', now)
# 生成指定大小的TXT文件
def generateTXTFile():
fileSize = 0
# 判断输入是否有误
while True:
size = input('请输入你想生成的TXT文件大小(MB):')
if size.strip().isdigit() != True:
print('只能输入整数,请重新输入!')
continue
else:
fileSize = int(size)
break
if fileSize >= 100:
print('正在生成TXT文件,请稍候... ...')
# 生成指定大小的TXT文件
filename = getnowdatatime(3) + '_' + size + 'MB.txt'
print(f'文件名:{filename}')
# 文件保存的路径
filepath =r"H:testfile\"
f = open(filepath + filename, 'w')
# 获取开始时间
starttime = getnowdatatime()
startclock = time.process_time()
for i in range(fileSize):
if i >= 100:
if i % 100 == 0:
print(f'已生成{i//100 * 100}MB数据...')
for j in range(1024):
try:
f.write('01' * 512)
except KeyboardInterrupt:
print('n异常中断:KeyboardInterrupt')
f.close()
exit(-1)
f.close()
print(f'文件已生成并保存,文件大小:{fileSize}MB.n')
print(f'保存路径: {filepath + filename}')
print(f'开始时间:{starttime}')
print(f'结束时间:{getnowdatatime()}')
print(f'总共耗时:{(time.process_time() - startclock):<.3}sec.')
if __name__ == '__main__':
generateTXTFile()
11.windows下生成指定大小的空文件
# 生成10个文件从1MB到10MB
for i in range(1,11):
with open(r'H:testfile\'+str(i)+"MB.txt","w",encoding="utf-8")as f:
# 1024KB,1024*1024MB,1写入的内容
f.write(i*1024*1024*'1')
10.python创建指定大小的文件
import time
# 获取时间和日期
def getnowdatatime(flag=0):
now = time.localtime(time.time())
if flag == 0:
return time.strftime('%Y-%m-%d %H:%M:%S', now)
if flag == 1:
return time.strftime('%Y-%m-%d', now)
if flag == 2:
return time.strftime('%H:%M:%S', now)
if flag == 3:
return time.strftime('%Y%m%d-%H%M%S', now)
# 生成指定大小的TXT文件
def generateTXTFile():
fileSize = 0
# 判断输入是否有误
while True:
size = input('请输入你想生成的TXT文件大小(MB):')
if size.strip().isdigit() != True:
print('只能输入整数,请重新输入!')
continue
else:
fileSize = int(size)
break
if fileSize >= 100:
print('正在生成TXT文件,请稍候... ...')
# 生成指定大小的TXT文件
filename = getnowdatatime(3) + '_' + size + 'MB.txt'
print(f'文件名:{filename}')
# 文件保存的路径
filepath =r"H:testfile\"
f = open(filepath + filename, 'w')
# 获取开始时间
starttime = getnowdatatime()
startclock = time.process_time()
for i in range(fileSize):
if i >= 100:
if i % 100 == 0:
print(f'已生成{i//100 * 100}MB数据...')
for j in range(1024):
try:
f.write('01' * 512)
except KeyboardInterrupt:
print('n异常中断:KeyboardInterrupt')
f.close()
exit(-1)
f.close()
print(f'文件已生成并保存,文件大小:{fileSize}MB.n')
print(f'保存路径: {filepath + filename}')
print(f'开始时间:{starttime}')
print(f'结束时间:{getnowdatatime()}')
print(f'总共耗时:{(time.process_time() - startclock):<.3}sec.')
if __name__ == '__main__':
generateTXTFile()
11.windows下生成指定大小的空文件
语法:fsutil file createnew [文件保存的路径文件名] [文件大小单位:Byte]
1KB=1024Byte 1MB=1024KB
1GB=1024MB 1TB=1024GB
12.Linux下生成指定大小的文件
(1)dd命令
(2)head命令
head -c 10MB /dev/zero > test1.txt
(3)fallocate命令
fallocate -l 1024 test2.txt 单位:Byte



