繁体   English   中英

使用Python查找和替换-二进制文件

[英]Find&Replace using Python - Binary file

我正在尝试在Mac OS X计算机上的文件中执行“查找并替换”操作。 虽然它似乎可以正常工作。 似乎文件已以某种方式更改。 完成后,我使用的文本编辑器(Text Wrangler)甚至无法打开文件。

这是我的代码:

  import fileinput
    for line in fileinput.FileInput("testfile.txt",inplace=1):
       line = line.replace("newhost",host)
       print line,

当我从终端查看文件时,它确实说“ testfile”可能是二进制文件。 反正看到吗? 此替换是否有可能损坏文件? 我还有其他选择可以工作吗? 我非常感谢您的帮助。

谢谢亚伦

更新:实际文件不是.txt文件,它是.plist文件,如果有任何区别,它是Mac OS X中的首选项文件

链接到plist文件: http : //www.queencitytech.com/plist.zip

您的代码对我来说很好。 但是,我建议采用另一种方法:不要尝试直接覆盖文件。 我从来不喜欢直接更改文件,因为如果您有错误或类似的东西,该文件将丢失。 生成一个新文件,然后手动将其复制(如果您确实愿意,可以在python中)。

PATH = 'testfile.txt'
FILE = open(PATH)
OUT_FILE = open('out_' + PATH, 'w')

for line in FILE.readlines():
   print >> OUT_FILE, line.replace('newhost', host),

尝试使用sys.stdout.write而不是print。 readlines()在读取行的末尾保留换行符。 print语句添加了一个新的换行符,因此可能会使文件的间距增加一倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM