文件的操作

文件操作:
window默认的编码格式是GBK
而我的python是utf-8
文件对象通常是 f
f = open("",‘r’,encoding=‘utf_8’) 文件句柄 #r.w.a(追加) a也不能读 r+ w+ a+ rb二进制模式
data = f.read()
默认是一次全部读完,所以不能连续read,可向其中传入参数,选择一次读多少东西
而且类似c语言,若文件未读到末尾,则返回一个1
不能连续两次read
f.write() w打开文件是一个创造文件,会直接覆盖掉原来的文件
使用追加的时候,可以不创建一个新的文件,和用w打开的区别
f.close()
f.readline()
f.readlines() 产生一个列表,列表的每一个元素都是一行
正常的方法:
for line in f: #不理解听说啥迭代器,啥玩意呀
print(line) 内存里只有一行的数据
print(f.tell) 告诉我光标所在位置
f.read(5) 读5个字节
f.seek(0) 回到初始位置,文件句柄中的位置指针
f.encoding 打印编码方式,文本对象的
f.seekable 能否移动
f.flush 强制刷新
sys.stdout.write() 想对于prinf,没有自动换行,这是个很舒服的事
f.truncate(10) 截断,从0截止10个位置,移动没有用
w+也是会创建新文件 必须先写后读 无论怎么写只能追加到最后
网络中只能用二进制模式 encode incode
文件修改的思路:读某一行判断是否为需修改的,若是则进行修改,若不是则直接写入
比如说:for line in f_old: # 循环读
if old_str in line:
newline = line.replace(‘一’,‘one’) # 替换
count += 1 # 每修改一次自增1
else:
newline = line
f_new.write(newline)
不能再源文件上就行修改
with open() as f: 当执行完代码块后会自动释放资源
pass
同时打开多个文件的规范
with open() as f
open() as f2:
pass

在实战中流出来的一些问题:
1.current = os.path.abspath(file)
module: Union[bytes, str] = os.path.dirname(os.path.dirname(current))
print(type(module))
print(module)
sys.path.append(module)
f = open(module+"\dosc\admission", ‘r’)
如何打开其他文件价下的txt文档
open的文件夹需要的是一个str,module是一个str再用str的加法,完成扩产
2.utf-8,解码出来的str开始会带有一些特殊的标记(\ufeff),使用utf-8-sig
且单独取出来的时候,又会消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值