open(文件名, 访问模式)—打开文件
demo:
file = open('test.txt', 'w')
close() —关闭文件
demo:
file = open('test.txt', 'w')
file.close()
使用write()可以完成向文件写入数据
demo:
file = open('test.txt', 'w')
file.write('hello world')
file.close()
注意:如果文件不存在,创建文件。如果文件存在,就先清空,然后写入数据。
使用read(num)可以从文件中读取数据,num表示要从文件中服务的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
demo:
f = open('test.txt', 'r')
#最多读取5个数据
content = f.read(5)
print(content)
print("-"*30)
#从上次读取的位置继续读取剩下的所有的数据
content = f.read()
print(content)
#注意:要关闭文件
f.close()
#结果:
hello
-----------------------------
world
readlines就像没有参数的read一样,按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
demo:
f = open('test.txt', 'r')
content = f.readlines()
print(type(content))
i = 1
for temp in content:
print("%d:%s" % (i, temp))
i += 1
f.close()
demo:
f = open('test')
content = f.readline()
print("1:%s" % content)
content = f.readline()
print("2:%s" % content)
f.close()
结果:
1:hello world
2:hello world
输入文件名字,然后程序自动完成对文件进行备份。
demo:
#提示输入文件名
oldFileName = input("请输入要拷贝的文件名字:")
#以只读的方式打开文件
oldFile = open(oldFileName, 'rb')
#提取文件的后缀
fileFlagNum = oldFileName.rfind('.')
fileFlagNum = 4
#rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1
#rfind() 方法语法:str.rfind(str, start=0 end=len(string))
if fileFlagNum > 0:
#利用下标取值[4:]
fileFlag = oldFileName[fileFlagNum:]
#组织新的文件名字
newFileName = oldFileName[:fileFlagNum] + '复件' + fileFlag
#组织新文件
newFile = open(newFileName, 'wb')
#把旧文件中的数据,一行一行的进行复制到新文件中
for lineContent in oldFile.readlines():
newFile.write(lineContent)
#关闭文件
oldFile.close()
newFile.close()
rename(需要修改的文件名,新的文件名)
demo:
import os
os.rename('1.txt', '2.txt')
demo:
import os
os.remove('2.txt')
demo:
import os
os.getcwd()
demo:
import os
os.chdir("../")
demo:
import os
os.listdir("./")
import os
os.rmdir("demo")
demo:
#批量在文件名前加前缀
#批量在文件名前加前缀
import os
funFlag = 1 #1表示添加标志 2表示删除标志
folderName = './renameDir/'
#获取指定路径的所有文件名字
dirList = os.listdir(folderName)
#遍历输出所有文件名字
for name in dirList:
print(name)
if funFlag == 1:
newName = '[什哥出品]-' + name
elif funFlag == 2:
num = len('[什哥出品]-')
newName = name[num:]
print newName
os.rename(folderName+name, folderName+newName)