python中的文件操作

python中的文件操作

起初data.txt文件是这样的

# 一直打开文件但却不关闭文件会导致内存溢出

# 在python,使用open函数,
# 可以打开一个已经存在的文件,或者创建一个新文件,
# 语法如下: open(name, mode)
# name: 是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
# mode: 设置打开文件的模式(访问模式):只读、写入、追加等。

# mode  r w a

# r 只读不支持写入
# 使用f.write()会报错
# 如果读取的文件不存在就报错


# read(num) 读取数据,
# num不写默认读取全部数据 num写了就读取指定大小的字节
f = open("data.txt", "r")
print(f.read())  # 读取全部数据
f.close()

输出:

 

 

 

 

# 注意:如果执行了一次 read 方法,读取了所有内容,
# 那么再次调用 read 方法,是不能读取到任何的内容,
# 因为第一次读取之后,文件指针移动到了文件末尾,
# 再次调用不会读取到任何的内容。

# readlines()  # 将文件里面的数据按行保存到列表中
# readline()  # 运行一次读取一行
f = open("data.txt", "r")
print(f.readlines())
data = f.readlines()
# data = f.readlines()[1]  # 读取第二行
print(data)  # 因为运行完上一个readlines()光标在文件末尾
f.close()

 

 

 

 

起初是这样的:

 

 

 

# w 覆盖写
# 如果该文件存在,则打开文件并从开头开始编辑,即原有内容会被删除。
# 如果该文件不存在,创建新文件。

# writelines() 将列表里的数据保存到文件中
data = ["静夜思666
", "唐66代:李白
", "床前明月光,疑是地上霜。
", "举头望明月,低头思故乡。"]
f = open("data1.txt", "w")
f.writelines(data)
f.close()

运行后data1.txt变为了:

 

 

 紧接着运行

f = open("data1.txt", "w")
f.write("zbc")
f.close()

 

 

 因为,访问模式为w时,光标每次都从文件开头开始,即原有内容会被删除

 

紧接着运行了两次下面这几行代码

# a 追加数据
f = open("data1.txt", "a")
f.write("
zbc
")  # 注意换行符
f.close()

 

 

 

运行下面代码

# r+ 读写  w+ a+
f = open("data.txt", "r+")
f.write("")  # 会覆盖第一行的相应字符 汉字占两个字节
f.close()

运行后:

 

 

 

 

起始时:

运行代码:

# 文件与文件夹的操作
# 复制 删除 重命名 移动

import os  # 导入模块

# 重命名
# os.rename(文件(夹)名称, 新的名称)  # 重命名
# 若原文件不存在,则报错
os.rename("abc.txt", "data1.txt")

运行后:

 

 

 

 运行前:

 

 

 运行代码:

os.rename(r"D:xiangxuexue\01\day15", r"D:xiangxuexue\01\day-15")  # 要注意那个r!!!

运行后:

 

 

 

运行前:

运行代码:

os.remove(r"data1.txt")  # 删除文件

运行后:

 

 

 

运行前:

 

 

 运行代码:

os.mkdir("data")  # 创建一个文件夹

运行后:

 

 

 

 

运行前:

 

 

 运行代码:

os.makedirs("data\data2")  # 创建整个路径的文件夹

运行后:

 

 紧接着运行代码:

os.rmdir("data\data2")  # 只会删除最里面的一个文件夹

运行后:

 

 

运行代码:

# # 查找
data = os.listdir(r"D:xiangxuexue1day16")  # 返回一个列表 文件夹里面的文件
print(data)  # ["data", "data.txt", "__init__.py", "文件操作.py"]

print()
data = os.walk(r"D:xiangxuexue1day16")
for i in data:
    print(i)  # 看路径


# 获取当前路径
print()
print(os.getcwd())  # D:xiangxuexue1day16


# 判断文件是否存在
if os.path.exists("data.txt"):
    print("yes")

输出:

 

 

 

运行前:

 

 运行代码:

import shutil
shutil.copy("data.txt", r"D:xiangxuexue1useless")  # 只复制
shutil.copy("data.txt", r"D:xiangxuexue1uselessdata2.txt")  # 复制加重命名

运行后:

 

 

 

今日练习;

# 今日练习
"""
1、
创建一个data.txt的文件
2、用文件的写的方法往里面写上一首诗,并输出里面的全部内容
静夜思
唐代:李白
床前明月光,疑是地上霜。
举头望明月,低头思故乡。
3、删除最后一行的诗句后并输出删除后的内容
"""
print("今日练习")
f = open("data.txt", "w")  # 创建data.txt文件
# poem = ["静夜思
", "唐代:李白
", "床前明月光,疑是地上霜。
", "举头望明月,低头思故乡。"]
# f.writelines(poem)  # 参数是个列表!而write()参数是个字符串
f.write("静夜思
唐代:李白
床前明月光,疑是地上霜。
举头望明月,低头思故乡。")
f.close()

f = open("data.txt", "r")
data = f.readlines()  # 以每行为一个元素,以列表形式存储!
del data[3]  # 删除最后一行
poem_new = data
print(data)
f.close()

 

原文地址:https://www.cnblogs.com/qc2012/archive/2022/11/28/16931096.html