首页 > 代码库 > day3 文件操作

day3 文件操作

1.文件基本的读取操作

f = open(chenli.txt) #打开文件
first_line = f.readline()
print(first line:,first_line) #读一行
print(我是分隔线.center(50,-))
data = f.read()# 读取剩下的所有内容,文件大时不要用
print(data) #打印读取内容
 
f.close() #关闭文件

2.文件打开基本的读写追加 参数

  • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
  • w,只写模式【不可读;不存在则创建;存在则清空内容】
  • x, 只写模式【不可读;不存在则创建,存在则报错】
  • a, 追加模式【可读;   不存在则创建;存在则只追加内个文件

"+" 表示可以同时读写某个文件

   

  • r+, 读写【可读,可写】
  • w+,写读【可读,可写】
  • x+ ,写读【可读,可写】
  • a+, 写读【可读,可写】

 "b"表示以字节的方式操作

  • rb  或 r+b
  • wb 或 w+b
  • xb 或 w+b
  • ab 或 a+b

  表示:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

2.编写拷贝文件程序

import sys

#python3 copy.py source.file target.file
if len(sys.argv) < 3:
    print(Usage:python3 copy.py source.file target.file)
    sys.exit()

with open(r%s %sys.argv[1],rb) as read_f,        open(r%s %sys.argv[2],wb) as write_f:

    for line in read_f:
        write_f.write(line)

3.文件内的光标移动

1. 文件打开方式为文本模式时,代表读取3个字符

2. 文件打开方式为b模式时,代表读取3个字节

3.其余的文件内光标移动都是以字节为单位如seek表示让光标跳转大到指定位置,tell显示光标那个字节,truncate

4. 语法格式:file.seek(offset, whence=0):

--> offset: 偏移量,需要向前或者是向后移动的字节数

--> whence: 可选值,默认为0, 可选值为1或者2,表示从何处开始计算偏移,具体来说,

--> 0表示从当前位置开始计算偏移

--> 1表示从文件头位置开始计算偏移

--> 2表示从文件尾开始计算偏移

day3 文件操作