文件操作 3个月前

编程语言
510
文件操作

文件读取

def print_file_info(file_name):
    f = None
    try:
        f = open(file_name, "r", encoding = "utf-8")
        print(type(f)) # # <class '_io.TextIOWrapper'>
    except Exception as reason:
        print("open file fail")
    else: # 如果未抛出异常会进入else
        print(f.read()) #读取文件并打印
    finally: # 该部分都会执行
        if f:
            f.close()
f = open("C:/Users/sewerperson/Desktop/intro.cpp","r",encoding = "UTF-8")
print(f.read(2)) #读取n个字符
print(f.readline(5)) # 读取当前行的字符, 若超过当前行字符, 则读取下一行
print(f.readline()) #默认读取当前行所有字符
print(f.readlines(1)) # 读取 n 行封装至列表内, 无参数则把文件每一行都封装 ['\\name\n']

for i in f: 
   print(i)

print(f.read()) #续着上次未读完的继续
f.close() #关闭文件

with open("C:/Users/sewerperson/Desktop/intro.cpp", "r", encoding = "utf=8") as f:
   print(f.readlines())
print(f.read()) # ValueError: I/O operation on closed file.

文件的写操作

f=open("C:/Users/sewerperson/Desktop/intro.cpp", "w", encoding = "utf-8") # 如果存在直接覆盖, 不存在就新建
f.write("add") # write 并没有真正写入硬盘中, 而是放置于缓冲区
f.flush()   # 直到调用 flush() 或 close() 时, 缓冲区中的内容才真正写入
f.close()

with open("C:/Users/sewerperson/Desktop/intro.cpp", "a", encoding= "utf-8") as f: # 追加
    f.write("new")

案例

count = 0
with open("C:/Users/sewerperson/Desktop/intro.cpp", "r", encoding = "utf-8") as f:
    for line in f:
        w = line.split(" ")
        print(w)
        for i in w:
            if i == "the":
                count += 1
print(f"the出现的次数是{count}")


with open("C:/Users/sewerperson/Desktop/intro.cpp", "r",encoding = "UTF-8") as f:
    k = f.read()
p = k.split(" ")
print(p.count("the"))
with open("C:/Users/sewerperson/Desktop/intro.cpp","r",encoding="utf-8") as f:
    for line in f:
        line.strip()
        g = open("xxx.txt", "a", encoding = "utf-8")
        g.write(f"{line}")
f = open("C:/Users/sewerperson/Desktop/intro.cpp", "r", encoding = "UTF-8")
data=f.read()
data=data.replace("replace me",'')
data=data[:-2] #略去后两个字符
image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2222884
累计阅读

热门教程文档

Dart
35小节
Spring Boot
24小节
Vue
25小节
Gin
17小节
Docker
62小节