問題:
在文件讀取,判斷md5值時,遇到py文件讀取轉String后,再轉byte,md5前后不一致問題。
解決方法:
python文件讀取要使用QTextStream,避免\t 、\r、\n的換行符跨平臺問題(window系統換行符和linux換行符不一致)。
QTextStream默認幫你處理了換行符跨平臺問題。
\r:回到開頭? ?\n:換行
一般讀取文件的方式是:
bool xxxxClass::readFile(const QString &filePath,QByteArray &bytes)
{QFile file(filePath);if(!file.open(QIODevice::ReadOnly)){QString msg = tr("Read [%1] faild: %2").arg(file.fileName(),file.errorString());qDebug()<<msg;return false;}bytes = file.readAll();file.close();
}
但是這樣讀出來的python文件會有問題,所以python要使用數據流去讀取。
bool xxxxClass::readTextFile(const QString &filePath,QString &text)
{QFile file(filePath);if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){QString msg = tr("Read [%1] faild: %2").arg(file.fileName(),file.errorString());qDebug()<<msg;return false;}QTextStream ts(&file);text = ts.readAll();file.close();return true;
}