当前位置:   article > 正文

python打开文件的一个坑(ValueError: must have exactly one of create/read/write/append mode)

valueerror: must have exactly one of create/read/write/append mode

很少用python操作文件,今天使用with open()函数后报错如下:

  1. with open('README.txt','rw') as f:
  2. f.write(e.emojize('Hello, user:rose::'))
  1. Traceback (most recent call last):
  2. File "<stdin>", line 1, in <module>
  3. ValueError: must have exactly one of create/read/write/append mode

解决办法:

python中的open函数没有rw这个参数,如果需要又读又写,可以使用r+或者w+来代替。

python读写文件详解
r默认读取
r+读写文件
rb读二进制
rb+读写二进制
w默认写
w+读写文件
wb写二进制
wb+读写二进制
a默认追加
a+追加写入和读取
ab追加二进制
ab+追加写入和读取二进制

更改代码后,成功执行文件操作。

  1. >>> with open('README.txt','w+',encoding='utf-8') as file:
  2. ... file.write(e.emojize('Hello, user :rose::'))
  3. ... file.write(e.emojize('\nNotion: If you want to use all emoji, please add language=\'alias\'.:red_heart:',True))
  4. ...
  5. 14
  6. __main__:3: DeprecationWarning: The parameter 'use_aliases' in emoji.emojize() is deprecated and will be removed in version 2.0.0. Use language='alias' instead.
  7. To hide this warning, pin/downgrade the package to 'emoji~=1.6.3'
  8. 69

之后再使用python读出该文件,可以看到成功输入标题和表情(utf-8而不能使用默认gkb)。

  1. >>> with open('README.txt','r+',encoding='utf-8') as f:
  2. ... print(f.read())
  3. ...
  4. Hello, user
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/278417
    推荐阅读
    相关标签