欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python Day03

程序员文章站 2022-05-03 08:16:09
...
  • Set

https://blog.csdn.net/qq_29756987/article/details/88667360

  • 文件操作

1.在使用open时,因为Python的默认编码格式为GB2132,所以需要转换为相对应的编码格式,否则有可能会报错。

f = open("python.txt", encoding="uft-8")# 文件句柄
f.read()

2.不同变量记录同一个句柄的时候,在没有手动改变光标位置前,第二次不会显示,可以理解为第一次文件读完后,光标在末尾,第二次从文件尾开始读。

# 假设python.txt内容为'Hello World'
f = open('python.txt', encoding='utf-8')
data1 = f.read()
data2 = f.read()
print(data1,data2)
=>Hello World

3.open的正确读写形式应该指定文件名,编码格式,读写模式

f = open('python.txt', 'r+', encoding='utf-8')
data = f.read()
print(data)

4.读操作

f = open('python.txt', 'r', encoding='utf-8')
data = f.read()
print(data)
f.close()
=>Hello World

5.写操作

f = open('python.txt', 'w', encoding='utf-8')
f.write('\nHello Python!')
f.close()

这里注意,这里用的只读的方法,所以在open之后如果去做度的操作就会报错;此时写的话会覆盖原先的文件内容。

6.追加操作

f = open('python.txt', 'a', encoding='utf-8')
f.write('\nHello C#!')
f.close()

7.read/readline

read(),会读取文件中所有的内容;readline(),一行一个行的读。

f = open('python.txt', 'r', encoding='utf-8')
# 这样在读取大文件有可能会很占用内存
for line in f.readlines():
    print(line.strip())# strip删除文本中空格和换行

# 效率最高 f为迭代器,不是一个列表
for line in f:
    print(line)
f.close()

8.tell/seek/seekable

tell将当前句柄所在的指针打印出来(可以想象为光标位置);seek句柄回到指定位置;seekabel不是所有的句柄都是可以移动的,判断文件是否可以移动光标(Linux下一切皆文件)

f = open('python.txt', 'r', encoding='utf-8')
print(f.tell())
print(f.read(5)) #读取5个字符
print(f.tell())
f.seek(0) # 回到最开始位置
print(f.tell())
=>0 5 0

9.encoding打印当前文件编码

10.fileno返回当前文件在内存的编号

11.readable判断文件是否可读

12.flush