我需要将英尺(ft ** 3)写入一个文件,该文件将由另一个程序读取,其中3是上标。当我从示例输入文件(例如:ft³)剪切并粘贴我需要的文本并尝试保存脚本时,它说:
“使用”ascii“编码对文件[filename]进行编码会导致信息丢失。你要继续吗?”
我使用的命令是:
f.write('Units ft³\n')
我将失去什么样的信息?如何从我的脚本到我的输入文件写'ft³'(我假设用ascii格式?)?我甚至不确定从哪里开始,所以任何信息都会受到赞赏。
如果有任何不同,我正在使用PyScripter IDE。
答案 0 :(得分:1)
Joran的选项适用于我的文本编辑器,但不幸的是,当我尝试用程序打开输入文件时,它会作为替换字符( )出现。该程序使用Micr $ oft File.ReadAllLines方法,因此如果文本以utf8编码,它应该能够读取文本,对吗?
file.write('units ft'+'\xb3'+'/day\n'.encode('utf8'))
不幸的是,当我尝试在程序中打开文件时,我仍然在获取替换字符。输入文件在文本编辑器中看起来很好,当我从文本编辑器剪切并粘贴该行时:
Units ft³/day
回答Mephy的问题:当我从现有的输入文件中复制ft³/ day字符串并将其粘贴到我的python脚本中时,出现了关于ASCII字符的错误,希望python以与程序读取它相同的方式编写它。 ..但那也不起作用。当我在UltraEdit中进行文件比较时,报告的行是相同的,但程序将读取它生成的行,但不是我生成的python脚本。如果我将单位改为没有指数的东西(即英尺 - 英尺),它就可以正常工作。
(为了澄清,我是发布原文的用户。但是,我丢失了该帐户的密码,无法合并这两个帐户。)
答案 1 :(得分:0)
String::replaceAll
您可以执行此操作,大多数测试编辑
会识别这些内容答案 2 :(得分:0)
好的,问题解决了。谢谢你指出我正确的方向Joran。虽然我不确定为什么我必须.encode('utf8')
字符串,因为你所说的\xb3
已经在utf8中了。但我尝试过并尝试过没有.encode('utf8')
的情况下无法工作。
在第二篇文章中,我编写了错误的字符串部分。其中任何一个都有效:
f.write('Units ft'+u'\xb3'.encode('utf8')+'/day\n')
或encode('utf8')
整行:
f.write(('Units ft'+u'\xb3'+'/day\n').encode('utf8'))
是一个优先于另一个吗?