一、文件操作步骤:

1. 打开文件 (open)(事先新建好txt)

file = open(r"D:\QC\python\test.txt", "r")

r:防止转义         "D:\QC\python\test.txt":文件路径           "r":只读形式

2. 读、写文件(read、write)

txt = file.read()

print(txt)

3. 关闭文件  (close)

file.close()

新建test.txt:

python文件和目录操作 python 操作文件_大数据

 新建空文本test1.txt

二、追加写文件

file = open(r"D:\QC\python\test1.txt", "a")  # a追加写
file.write("hi")  # 新追加txt的内容
file.close()
修改文件内容

file = open(r"D:\QC\python\test.txt", "r") # 读的方式
txt = file.read() #先读出来
a = txt.replace("hello", "bye")
file.close() # 一定要关闭
file = open(r"D:\QC\python\test.txt", "w") # 写
file.write(a)
file.close()

结果:

python文件和目录操作 python 操作文件_大数据_02

python文件和目录操作 python 操作文件_python文件和目录操作_03

三、复制文件

把文件test.txt的内容复制到test2.txt

思路:1)读取test中所有内容 2)打开test2文件用w写入,把内容写入

file = open(r"D:\QC\python\test.txt", "r")
txt = file.read()
file.close()
file = open(r"D:\QC\python\test2.txt", "w")
file.write(txt)
file.close

结果:

python文件和目录操作 python 操作文件_绝对路径_04

四、合并文件

把两个文件的内容合并起来写入另一个文件中

文件test.txt内容放置在变量a中,文件test1.txt内容放置在变量b中,合并a+b到test_new.txt中

# 读取test内容
file = open(r"D:\QC\python\test.txt", "r")
a = file.read()
file.close()
# 读取test1内容
file = open(r"D:\QC\python\test1.txt", "r")
b = file.read()
file.close()
# 合并写入test_new
file = open(r"D:\QC\python\test_new.txt", "w")
file.write(a+b)
file.close()

注意:每次读取或写入需要关闭

结果:

python文件和目录操作 python 操作文件_python文件和目录操作_05

五、读取文件行数

1. 单行读取 (readline)test.txt

file = open(r"D:\QC\python\test.txt", "r")
a = file.readline() # 未关闭就继续往下读
print(a, end="") # 去除空余的一行
a = file.readline()
print(a,end="")
file.close()

结果:

python文件和目录操作 python 操作文件_python文件和目录操作_06

单行+循环,读取整个文件

file = open(r"D:\QC\python\test.txt", "r")
while True: 
    txt = file.readline()
    if txt == "":  #当没有字符时跳出
        break  
    print(txt, end="")
file.close()

结果: 

python文件和目录操作 python 操作文件_python_07

2. 读取偶数行

思路:打开文件读取所有行但仅显示偶数行

file = open(r"D:\QC\python\test.txt", "r")
index = 1 # 定义一个计数器(行数)
while True:
    txt = file.readline()
    if txt == "":   # 循环至最后
        break
    if index % 2 == 0: # 是偶数行就显示
        print(txt, end = "") # 去掉后面的回车
    index += 1 # 每次读完+1往下读
file.close()

3. 多行读取(readlines)

file = open(r"D:\QC\python\test.txt", "r")
list1 = file.readlines()
print(list1)
file.close()

结果:显示为列表存在/n;文件有几行,列表就有几个成员

python文件和目录操作 python 操作文件_python文件和目录操作_08

可改写为遍历列表中的每个成员,添加for循环 

 

python文件和目录操作 python 操作文件_大数据_09

六、withopen

对等代码

with open(r"D:\QC\python\test.txt", "r") as file:
    txt = file.read()
    print(txt)

7.12更新


(一)with open 和 file open()对比

1) 使用open打开文件,必须要使用close关闭文件,若运行出错则不会关闭文件。

因此使用try....finally

try:
    f = open('test1.txt', 'r')
    print(f.read())
finally:
    if f:
        f.close()

无论运行是否出错,都会执行finally下的代码

2) with open可以不用close()方法关闭文件,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。

with open() 读 (自动调用f.close())

with open('test1.text', 'r') as file:            
    print(f.read())

with open() 写

写入文件内容时,系统不会立刻就把所有数据写入到磁盘,它是先放到内存中缓存,等到空闲的时候再慢慢写入到磁盘。当调用close()方法时,系统才能保证把剩余没有写入的数据全部写入到磁盘。假如调用close()方法,那可能导致数据遗失。

with open('test1.text', 'w') as f:            
    print(f.write('demo'))

3)命令seek()、tell()

file = open('1.txt', 'r')
file.seek(2) # 指针跳到索引2的位置
print(file.read())
print(file.tell()) # 返回读取文件后指针位置
file.close()

结果:

1.txt内容为 Hellogoodbyegenius

python文件和目录操作 python 操作文件_python文件和目录操作_10

4)复制图片

python文件和目录操作 python 操作文件_python_11

os模块下一篇

(二)路径显示

  • 绝对路径:从根文件夹开始,如Window 系统中以盘符(C:、D:)作为根文件夹
  • 相对路径:指的是文件相对于当前工作目录所在的位置。

1)项目所在文件夹中txt

python文件和目录操作 python 操作文件_python文件和目录操作_12

绝对路径("\""/"都可以)

file = open(r"D:\QC\测试\学习\python\test.txt", "r")

python文件和目录操作 python 操作文件_相对路径_13

 相对路径:( “.\” 表示当前所在目录)

file = open(r".\test.txt", "r")

python文件和目录操作 python 操作文件_大数据_14

2)同级文件夹中txt

python文件和目录操作 python 操作文件_大数据_15

结果:

python文件和目录操作 python 操作文件_python_16

 2) 上级文件夹中txt

python文件和目录操作 python 操作文件_python文件和目录操作_17

绝对路径:

file = open(r"D:/QC/python/test.txt", "r")

python文件和目录操作 python 操作文件_绝对路径_18

相对路径:(..\表示上级)

python文件和目录操作 python 操作文件_相对路径_19