python之文件操作

操作模式

1. 文本模式
	r   => rt
    w   => wt
    a	=> at
   '''
   		注意事项:
   			1. 文件中的内容全部都是以字符串为单位
   			2. 写入的内容只能是字符串
   			3. 必须指定encoding参数
   '''

2. 二进制模式
	# 这里的b就不能省略了, b代表是二进制模式,执行所有的数据类型
	rb
    wb
    ab
    
    '''
    	注意事项:
    		1. 文件中的内容都以字节(bytes)为单位
    		2. 写入的内容必须是二进制
    		3. 一定不能指定encoding参数
    '''

做一个简易版本的拷贝功能

# 1. 输入被拷贝文件的路径

# 2. 输入将要放入文件的路径

# 3. 通过代码操作文件实现  读被拷贝的文件,写入到指定的文件路径下

# 1. 输入被拷贝文件的路径
wait_path = input('wait path:').strip()
new_path = input('new path:').strip()

with open(r'%s' % wait_path, 'rb') as f, open(r'%s' % new_path, 'wb') as f1:
    for line in f:
        f1.write(line)

二进制的读写模式

# with open('a.txt', 'rb') as f:
#     print(f.read(6).decode('utf8'))

with open('a.txt', 'r',encoding='utf8') as f:
    print(f.read(5))
    
'''
    1. 一个英文一个字节
    2. 一个中文字符三个字节
    3. f.read(n)
        在t模式下,n代表的是字符的个事
        在b模式下,n代表的是字节个数
'''

文件中控制光标的移动

with open('a.txt', 'rb') as f:
    print(f.read(3))
    # print(f.tell())  # 查询光标移动的位置
    f.seek(-3, 2)
    print(f.read().decode('utf8'))


'''
    f.seek()
        offset
            偏移的位置量
        whence
            模式控制
            0:默认的模式,该模式代表指针移动的字节数是以文件开头为参照的
            1:以当前所在的位置为参照的
            2:以文件末尾的位置为参照的
        强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用
'''

修改文件内容

# 1. 读取文件内容
with open('a.txt', 'r', encoding='utf8') as f:
    data = f.read()
    print(data)

# 2. 把新数据写入文件
with open('a.txt', 'w', encoding='utf8') as f:
    # f.seek(3, 0)
    # f.write('<妇女主任>')
    new_data = data.replace('山东', '妇女主任')
    f.write(new_data)
上一篇:通过C/C++基于http下载文件


下一篇:C++ 内接连与外接连