用Python解析一个文件,把文件内容按行放到qtreewidget中,有层次的显示出来?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python解析一个文件,把文件内容按行放到qtreewidget中,有层次的显示出来?相关的知识,希望对你有一定的参考价值。
此文件的扩展名任意,因为我可以修改,不过里面的内容如下所示,尖括号不需要,我只要这些公式,解析出来的并显示的情况可以参考下面这幅图的样子,求网友帮忙,非常感谢,我把我所有的金币都放出来,只为有一个结果< < I(d,s) = Id < Id = Ispec * (iff - ir) < Ispec = 2 * n * beta * VT * VT < n = 1.0 + GAMMA / (2.0*sqrt(PHI + VP + 4.0*VT)) < GAMMA=0.7 PHI=0.5 VP = VGprime - PHI - GAMMA * (sqrt(VGprime+(GAMMA/2.0)*(GAMMA/2.0))-(GAMMA/2.0)) /> /> /> />/>这种此次结构,展示在qtreewidget中,如图所示,不需要这些尖括号,只要这些公式即可,在pyqt+Python+Eric+pyside中都可以,非常感谢各位网友的帮忙,谢谢您们的热心帮助!
代码看的不行,截图给大家看,对不起啊
<
< I(d,s) = Id
<
Id = Ispec * (iff - ir)
<
Ispec = 2 * n * beta * VT * VT
<
n = 1.0 + GAMMA / (2.0*sqrt(PHI + VP + 4.0*VT))
<
GAMMA=0.7
PHI=0.5
VP = VGprime - PHI - GAMMA * (sqrt(VGprime+(GAMMA/2.0)*(GAMMA/2.0))-(GAMMA/2.0))
/>
/>
/>
/>
/>
那麼多内容吗?追问
不是,不过我要的是可以用代码识别出来,如果少的话,输入进去,就可以,没有必要复杂的编写代码,
代码很长,所以需要这样处理,否则人根本没这个时间和精力去做
谢谢您的回复,如果您有什么方法,希望您以代码的形式帮帮我,谢谢!
能否提供一个完整的示例文档呢?
还有根节点怎么区分?
根节点这些东西是不存在的,因为这不是一个完整的、规范的xml文件,当然我们可以保存为其他扩展名的文件,
源文件我给以地址吧:http://pan.baidu.com/s/1pLH6vd5
如果打不开,你给我一个邮箱,我给你发过去,谢谢您这么耐心给我解答
# -*- coding: utf-8 -*-
def read_file(fpath):
BLOCK_SIZE = 2048
with open(fpath, 'rb') as f:
while True:
block = f.read(BLOCK_SIZE)
if block:
yield block
else:
return
strs = ''
for i in read_file(u'test.xml'):
strs += i
import re
result = re.sub('\\t+<\\t*|\\t+/>\\t*','',strs)
item =
i = 0
for s in result.split('\\r\\n'):
if s!='':
reg=re.compile("\\t")
length=len(reg.findall(s))
item[i] = [length,s.replace('\\t','')]
#print s,length,i
i+=1
print item追问
热心的朋友,您好,你能把可直接运行的代码用.py文件发给我那个邮件回复
orz,谢谢您!
是否这个效果?
wow,是的,就是这个,大神,太好了,orz,求源文件赐教,谢谢谢谢谢谢谢谢~
给力给力
# -*- coding: utf-8 -*-
import re
def read_file(fpath):
BLOCK_SIZE = 2048
with open(fpath, 'rb') as f:
while True:
block = f.read(BLOCK_SIZE)
if block:
yield block
else:
return
strs = ''
for i in read_file(u'test.xml'):
strs += i
result = re.sub('\\t+<\\t*|\\t+/>\\t*','',strs)
item =
i = 0
for s in result.split('\\r\\n'):
if s!='':
reg=re.compile("\\t")
length=len(reg.findall(s))
item[i] = [length,s.replace('\\t','')]
#print s,length,i
i+=1
print item追问
恩,这个好说,我们邮件里面聊吧
追答看私信
参考技术A 恩,我也遇到过,求各位网友集思广益把,谢谢您们哦追问如果您最近知道了答案,请您也回复一下我,谢谢您哦!
qt 读取一个txt文件,把里面的内容已二进制的方式存储到另一个文件里面。
读取一个txt文件,把里面的内容已二进制的方式存储到另一个文件里面。这另一个文件还得是.pcp格式的。思路我都有,但是我就是想有个代码,看看。我该怎么写。
你用的是C呀。用Qt的话,我有段代码可以给你参考下。//写二进制数据
QFile dataFile(info_file_name);
if(!dataFile.open(QIODevice::WriteOnly))
return -1;
QDataStream out(&dataFile);
out.setVersion(QDataStream::Qt_4_4);
out.setByteOrder(QDataStream::LittleEndian); //编码方式:低字节在前
for(int i=0;i<command_datas.count();i++)
out<<……;
dataFile.close();
//读txt数据
QFile infoFile(info_file_name);
if(!infoFile.open(QIODevice::ReadOnly))
return -1;
QTextStreamin(&infoFile);
while(!infoFile.atEnd())
in>>……
infoFile.close();追问
out 和in的地方没有懂。。
追答>>输入和>
当然,名字你随便取,就是读入和读出数据。
比如:
QFile file(filename);
file.open(QIODevice::ReadOnly);
QTextStream read(&file); //输入流对象 read
QListstr;
while(!file.atEnd())
QString s;
read>>s; //读入数据
str.append(s);
file.close();
以上是关于用Python解析一个文件,把文件内容按行放到qtreewidget中,有层次的显示出来?的主要内容,如果未能解决你的问题,请参考以下文章
python中read() ,readline()以及readlines()区别