我正在使用日志模块在文件中写入一些日志
#filename : demo.py
import logging
#other imports as well
logging.basicConfig(filename="myfile.log",
format='%(asctime)s %(funcName)s %(levelname)s %(message)s',
filemode='w')
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.debug("Writing logs in this way")
但有时我的模块会写很多nullvalues
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
所以我编写了一个脚本来删除这些值。但是当我修改时,myfile.log
我的进一步日志没有被存储。我知道这是由于文件流的更改/关闭造成的myfile.log
。是否可以修改我的日志文件而不会损害或丢失我已经存在的流demo.py
。我正在使用ubuntu : 18.04
和python : 3.6.9
为了进行修改,我尝试了以下方法
- 我正在使用脚本
sed -i -e 's/\o00//g'
myfile.log 来修改文件 - 我使用 vim 手动编辑文件:
vim myfile.log
要删除行,我使用dd
然后关闭:wq
来自一条评论https://stackoverflow.com/questions/64875452/modify-a-file-without-changing-its-file-stream我知道这两种方法都会用新文件覆盖旧文件。有没有办法就地编辑文件?