Python入门 - 字符文件读写

常用操作

字符文件本质上还是用二进制方式写出,只是他多了一步查找字符的二进制值的过程。比如:9用二进制写出就是0b1001,utf-8的'9‘写出就是要先在utf-8码表中找'9'对应的二进制0b111001,然后再写出。 

 

if not os.path.exists("New Folder"):
    os.mkdir("New Folder")

f1 = open("New Folder/text.txt", "w", encoding="utf-8")
print(f1.name)  # New Folder/text.txt
print(f1.closed)  # False
print(f1.mode)  # w
print(f1.readable())  # False
print(f1.writable())  # True
print(f1.seekable())  # True
f1.write("abc中文ABC\ndef文本DEF")
f1.close()

 

f1 = open("New Folder/text.txt", "r", encoding="utf-8") # win10下, 默认GBK, 不指定编码, 读的时候会抛异常
print(f1.name)  # New Folder/text.txt
print(f1.closed)  # False
print(f1.mode)  # r
print(f1.readable())  # True
print(f1.writable())  # False
print(f1.seekable())  # True
print(f1.tell())  # 0

# 读字符
print(f1.read(3))  # abc
print(f1.read(1))  #

# 读到换行符为止
print(f1.readline())  # 文ABC\n

print(f1.seek(0, 0))  # 0, 游标移到文件开头
print(f1.read())  # 全部都读出来

f1.close()

 

自动close方式的打开文件 

with open("New Folder/text.txt", "r", encoding="utf-8") as f1:
    # do something ...
    # f1.close()  # 不再需要我们手动调用close

 

读游标操作

with open("New Folder/text.txt", "r", encoding="utf-8") as f1:
    # 刚打开文件时的读取位置
    print(f1.tell())  # 0

    f1.read(3)
    # 读取3个字符后的位置
    print(f1.tell())  # 3

    f1.read(1)
    # 读取一个中文字符后的读取位置
    print(f1.tell())  # 6

    # 读位置游标移到文件开头
    print(f1.seek(0, 0))  # 0
    print(f1.tell())  # 0

    print(f1.seek(0, 2))  # 26
    print(f1.tell())  # 26

 

posted @ 2023-07-24 22:25  yanghui01  阅读(7)  评论(0编辑  收藏  举报