设为首页 加入收藏

TOP

【第八篇】Python的文件(file)操作(二)
2019-09-14 00:55:51 】 浏览:82
Tags:第八篇 Python 文件 file 操作
;
ddd") 4 f.flush() 5 f.close()
 1 # r+ 默认模式指针在文件的开头
 2 # f = open("老师点名", mode="r+", encoding="utf-8")
 3 # s = f.read()
 4 # print(s)
 5 # f.write("周杰伦")
 6 # f.close()
 7 # 神坑
 8 f = open("精品", mode="r+", encoding="utf-8")
 9 s = f.read(3)  # 读3个字符
10 # 不管你前面读了几个,后面去写都是在末尾
11 f.write("aabbcc")  # 没有任何操作之前进行写,在开头写,如果读取了一些内容后再写,则是在最后
12 f.flush()
13 f.close()

文件内的光标移动

 1 一: read(3):
 2   1. 文件打开方式为文本模式时,代表读取3个字符
 3   2. 文件打开方式为b模式时,代表读取3个字节
 4 二: 其余的文件内光标移动都是以字节为单位如seek,tell,truncate
 5     seek(offset[, whence])
 6         offset -- 开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始
 7         whence:可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。
 8 
 9 
10 注意:
11   1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的
12   2. truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果 
13   

 

 1 #!/usr/bin/python3
 2  
 3 # 打开文件
 4 fo = open("runoob.txt", "r+")
 5 print ("文件名为: ", fo.name)
 6  
 7 line = fo.readline()
 8 print ("读取的数据为: %s" % (line))
 9  
10 # 重新设置文件读取指针到开头
11 fo.seek(0, 0)
12 line = fo.readline()
13 print ("读取的数据为: %s" % (line))
14  
15  
16 # 关闭文件
17 fo.close()

2.3 with操作

1  为了避免打开文件后忘记关闭,可以通过管理上下文,即:
2   with open('log','r') as f:
3 如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
4 
5 在Python 2.7 后,with又支持同时对多个文件的上下文进行管理即:
6 with open('log1') as obj1, open('log2') as obj2:
1 with open("a.txt", mode="r", encoding="utf-8") as f:
2     data = f.read()
3     print(data)
# 提示输入文件
oldFileName = input("请输入要拷贝的文件名字:")

# 以读的方式打开文件
oldFile = open(oldFileName,'rb')

# 提取文件的后缀
fileFlagNum = oldFileName.rfind('.')
if fileFlagNum > 0:
    fileFlag = oldFileName[fileFlagNum:]

# 组织新的文件名字
newFileName = oldFileName[:fileFlagNum] + '[复件]' + fileFlag

# 创建新文件
newFile = open(newFileName, 'wb')

# 把旧文件中的数据,一行一行的进行复制到新文件中
for lineContent in oldFile.readlines():
    newFile.write(lineContent)

# 关闭文件
oldFile.close()
newFile.close()
文件备份

2.4 文件的相关操作

 1 import os
 2 
 3 # 文件重命名
 4 os.rename("毕业论文.txt", "毕业论文-最终版.txt")
 5 
 6 # 删除文件
 7 os.remove("毕业论文.txt")
 8 
 9 # 创建文件夹
10 os.mkdir("abc")
11 
12 # 获取当前目录
13 os.getcwd()
14 
15 # 改变默认目录
16 os.chdir("../")
17 
18 # 获取目录列表
19 os.listdir("./")
20 
21 # 删除文件夹
22 os.rmdir("abc")
# 创建新文件,把修改后的文件写入新文件,删除老文件,再重命名新文件

import os

with open("吃的", mode="r", encoding="utf-8") as f1, \
        open("吃的_副本", mode="w", encoding="utf-8") as f2:
    for line in f1:
        new_line = line.replace("", "")
        f2.write(new_line)


os.remove("吃的")     # 删除文件
os.rename("吃的_副本", "吃的")    # 重命名文件
修改文件内容
#coding=utf-8
# 批量在文件名前加前缀
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(folderNam
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇django中使用事务以及接入支付宝.. 下一篇淘淘购物系统 (Python)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目