smilepup-hhr

从零开始的Python学习Episode 7——文件基本操作

文件基本操作

 

一、打开文件

f = open(\'11\',\'r\')#open(\'file path\',\'mode\')

  创建一个文件对象

文件有多种打开模式:

1. \'r\':新建一个文件对象以只读方式打开文件。读文件的指针将会放在文件的开头。

f = open(\'11\',\'r\')#open(\'file path\',mode\')
data = f.read()
print(data)
f.close() #输出123456789

2.‘w’:新建一个只用于写文件的文件对象

f = open(\'11\',\'w\')
f.write(\'12345\')
f.close() #文件中内容会变成12345

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

3. \'a\': 新建一个只用于追加内容的文件对象。

f = open(\'11\',\'a\')
f.write(\'\n12345655\')
f.close()

  文件的末尾会加上要输入的内容。 

  如果该文件已存在,文件指针将会放在文件的结尾,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

4. \'r+\': 新建一个只用于读写的文件对象。文件指针将会放在文件的开头,但写入内容会写到文件内容末尾。

f = open(\'11\', \'r+\')
a = f.readline()
f.write(\'789\')
print(a)
f.close() #输出123 #文件末尾加上了789

5.\'w+\':新建一个只用于读写的文件对象。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

 

6. \'a+\': 新建一个只用于读写的文件对象。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。读文件时从文件内容的末尾读,因为文件指针放在文件的结尾。

 

二、内置方法

1. readline()

f = open(\'11\',\'r\')
print(f.readline())
f.close()
#文件内容:
#123
#1234
#12345
#123456
#输出:123

  按行输出。每调用一次输出一行。

2. readlines()

f = open(\'11\',\'r\')
print(f.readlines())
f.close()
#输出[\'123\n\', \'1234\n\', \'12345\n\', \'123456\']

  输出所有行,以列表形式返回。

 

3.flush()方法

  可以用来刷新缓冲区,将缓冲区中的数据立刻写入文件,同时清空缓冲区,不用被动地等待输出缓冲区写入。一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。例如:进度条

import sys,time
for i in range(30):
    sys.stdout.write(\'*\')
    sys.stdout.flush()
    time.sleep(0.1)

 

4.truncate()方法

f = open(\'11\', \'a\')
f.truncate(2)
#文件内容
#123
#1234
#12345
#123456
#输出12

  用于截断文件,如果指定了可选参数 size,则表示保留前size 个字节,删除 size 后面的所有字符。 如果没有指定 size,则从当前位置起截断。

 

5.seek()方法

seek(offset ,whence) 方法改变当前文件的位置。

offset变量表示要移动的字节数。whence变量表示要从哪个位置开始偏移.

如果whence被设为0,表示将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

 

6.with 关键字

with open(\'11\',\'r\') as f:
    a = f.readline()
print(a)

  使用了with之后,可以不用写close(),默认在with语句执行完之后关闭文件。

 

7.tell() 方法

返回文件的当前位置,即文件指针当前位置。

with open(\'11\',\'r+\') as f:
    a = f.readline(1)
    print(a)
    print(f.tell())

  

 

分类:

技术点:

相关文章:

  • 2021-04-30
  • 2021-04-14
  • 2021-08-14
  • 2021-04-20
  • 2021-04-12
  • 2022-01-19
  • 2021-11-22
  • 2021-05-30
猜你喜欢
  • 2021-12-15
  • 2021-06-14
  • 2022-12-23
  • 2021-06-23
  • 2021-11-11
  • 2021-11-06
  • 2021-05-10
相关资源
相似解决方案