在Python写作后,文件开始中的奇怪字符



我想通过python脚本自动替换很多无聊的C#代码。我阅读了文件的所有行,转换它们,截断了整个文件,编写新字符串并关闭它。

f = open(file, 'r+')
text = f.readlines()
# some changes
f.truncate(0)
for line in text:
    f.write(line)
f.close()

我所有的更改都是编写的。但是文件开头的一些奇怪字符出现。我不知道如何避免它们。即使我使用encoding='utf-8-sig'打开也无济于事。

我尝试了除了这样的第一行以外的整个文件:

import sys
f.truncate(sys.getsizeof(text[0]))
for index in range(1, len(text), 1):
    f.write(text[index])

,但在这种情况下,一行超过一行,而不仅仅是第一行。

编辑我尝试了:

f.truncate(len(text[0]))
for index in range(1, len(text), 1):
    f.write(text[index])

和第一行的书写正确,但下一个有同一问题。因此,我认为这些字符从文件的末尾开始,我尝试在它们之后写下。

f=open(file, 'r+')
text = f.readlines() # After reading all the lines, the pointer is at the end of the file.
# some changes
f.seek(0) # To bring the pointer back to the starting of the file.
f.truncate() # Don't pass any value in truncate() as it means number of bytes to be truncated by default size of file.
for line in text:
    f.write(line)
f.close()

查看此链接以获取更多详细信息。

相关内容

  • 没有找到相关文章

最新更新