问题:
在文件读取,判断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;
}