前天PL让我们做一个从手机里手机一些数据导出到excel文件里的Tool。

让我们用python去写一个。但是我们都没有学过python。。呵呵!

然后昨天看了一些文档。做ui时还需要把图片写入qrc中然后再让它生成一个py文件这个表示比较麻烦,

然后就写了这个脚本。

非常简单的一个程序。就是有关中文编码处理相关就有点麻烦。

因为是初学者所以并不知道有什么工具或方法可以处理此问题。

就随便写了一个。主要是为了学习一下python。

学语言必须要自己写代码,抄代码也可以,反正必须自己写一遍才能提高能力。

# -*-coding:UTF-8-*-
'''
Created on 2016-8-25 @author: hongguang.jin
'''
import sys from PyQt4 import QtCore, QtGui, Qt
from PyQt4.Qt import *
import os,sys
from PyQt4.QtGui import QFontDialog, QApplication
from toaiff import toaiff
from encodings.idna import ToASCII QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8")) comms= {}
class StandardDialog(QDialog): def __init__(self,parent=None):
super(StandardDialog,self).__init__(parent)
self.setWindowTitle("Standard Dialog")
reload(sys)
sys.setdefaultencoding('utf8') uiFileButton=QPushButton(self.tr("选择.ui文件"))
self.uiFileLineEdit=QLineEdit()
uiToPyPushButton=QPushButton(self.tr("ui转为py")) layout=QGridLayout()
layout.addWidget(uiFileButton,0,0)
layout.addWidget(self.uiFileLineEdit,0,1)
layout.addWidget(uiToPyPushButton,0,2) self.setLayout(layout)
self.connect(uiFileButton,SIGNAL("clicked()"),self.openFile)
self.connect(uiToPyPushButton,SIGNAL("clicked()"),self.transFile) def openFile(self):
s=QFileDialog.getOpenFileName(self,"Open file dialog","/","Files(*.ui)")
path = str(s).encode('utf8')
self.uiFileLineEdit.setText(path.decode('utf8'))
comms['name'] = path.decode('utf8').split("/")[-1].split(".")[0]
comms['cd'] = "cd " + path.decode('utf8').split(comms['name']+'.ui')[0]
comms['root'] = path.decode('utf8').split("/")[0]
comms['command'] = "Qpyuic4 " + comms['name'] +str(".ui > ") + comms['name'] +".py" def transFile(self):
f = open("trans.bat",'w')
f.write("@echo on\n")
f.writelines(str(comms['root']+"\n").encode('gbk'))
f.writelines(str(comms['cd']+"\n").encode('gbk'))
f.writelines(str(comms['command']+"\n").encode('gbk'))
f.write("exit")
abstractpath = os.getcwd()+'\\trans.bat'
os.popen('start %s'%str(abstractpath)) app=QApplication(sys.argv)
form=StandardDialog()
form.show()
app.exec_()

原理其实很简单,也比较麻烦吧

因为我先把选择的目录拆分了以后再把这些拆分的数据转换为cmd命令然后写入到dat文件然后运行此bat文件的程序。

比较麻烦,主要是随便学习了一下python中的文件读写功能。跟C语言一样。呵呵

你也可以模仿写一个qrc生成py的文件

运行界面:

.ui/qrc文件自动生成.py文件的更多相关文章

  1. 文件参数化-utp框架之根据yaml文件自动生成python文件+utp运行用例

    根据yaml文件自动生成python文件 utp框架: bin目录:存放执行文件(run.py) cases目录:存放生成的用例的python文件(该目录下的文件为根据data目录下的测试用例生成的p ...

  2. 在visual studio code和visual studio中编写TypeScript文件自动生成JavaScript文件

    注:此处的自动生成都为保存ts文件时自动生成js文件 VS CODE 只需要在TypeScript的终端控制台中输入如下命令即可,并注意需要将其中的*换成对应的文件名,此处的*似乎不能作为通用匹配. ...

  3. 自动生成.py文件头部的C语言小程序

    每次都 vi xxx.py 然后再打 #!/usr/bin/env python 等等的程序头信息感觉有点麻烦,于是便想着写一个小程序自动生成这些头信息了,顺便在 ~/.bashrc 里写入 alia ...

  4. 根据xml文件自动生成xsd文件

    根据xml生成xsd文档 1. 找到vs自带的xsd.exe工具所在的文件夹位置: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 注意 ...

  5. 如何将pyqt5的qt-designer设计出来的 .ui 和 .qrc 文件转化成 .py 文件

    一.pyrcc5的使用 1.1 作用 将 .qrc 资源文件转换成py文件,并在主程序中通过 import 引入 1.2 资源文件编写说明 创建一个icon.qrc,代码如下: <RCC> ...

  6. Sqlalchemy model 文件自动生成

    自动生成Sqlalchemy的models文件的包早用过了,有个字段类型做了改动,调了得10几分钟才搞定.记录下自动生成models文件的python包sqlacodegen sqlacodegen已 ...

  7. pycharm自动生成头文件注释

    1.在file->settings->file and code templates->python script即可自定制pycharm创建文件自动生成的头文件注释信息 2.创建p ...

  8. python 自动生成model 文件 案例分析

    生成方式 Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件 sqlacodegen 你可以通过pip去安装: pip install sql ...

  9. linux下使用automake工具自动生成makefile文件

    linux环境下,当项目工程很大的时候,编译的过程很复杂,所以需要使用make工具,自动进行编译安装,但是手写makefile文件比较复杂,所幸在GNU的计划中,设计出了一种叫做Autoconf/Au ...

随机推荐

  1. inline函数的总结

    在函数返回类型前加上关键字inline就可以将函数指定为内联函数: inline const string& shortString(const string &s1, const s ...

  2. 【uoj#207】共价大爷游长沙 随机化+LCT维护子树信息

    题目描述 给出一棵树和一个点对集合S,多次改变这棵树的形态.在集合中加入或删除点对,或询问集合内的每组点对之间的路径是否都经过某条给定边. 输入 输入的第一行包含一个整数 id,表示测试数据编号,如第 ...

  3. python传参

    写在前面 Python唯一支持的参数传递方式是『共享传参』(call by sharing) 多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Java的引用类型是这样,基本 ...

  4. BZOJ4953 Wf2017Posterize(动态规划)

    设f[i][j]为前i种强度选了j种且其中第i种选时前i个的最小误差.转移枚举上个选啥前缀和优化即可. #include<iostream> #include<cstdio> ...

  5. 在 QML 中创建 C++ 导入类型的实例

    在 QML 中创建 C++ 导入类型的实例 文件列表: Project1.pro QT += quick CONFIG += c++ CONFIG += declarative_debug CONFI ...

  6. 导航控制器里边添加UIScrollView (automaticallyAdjustsScrollViewInsets)

    导航控制器里边如果添加UIScrollView会导致放大操作异常怪异,此时设置 self.automaticallyAdjustsScrollViewInsets = false

  7. Redis安装与配置Redis安装与配置

    今天在使用Redis的时候遇到了一些问题,这个问题的解决,发现很多人使用Redis的时候没有一点安全意识.所以又重温了一下Redis,觉得应该写一下Redis的安全和配置. Redis安装与配置Red ...

  8. 【BZOJ3105】新Nim游戏(线性基)

    [BZOJ3105]新Nim游戏(线性基) 题面 BZOJ Description 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以 ...

  9. BZOJ3724 [HNOI2012]集合选数 【状压dp】

    题目链接 BZOJ3724 题解 构造矩阵的思路真的没想到 选\(x\)就不能选\(2x\)和\(3x\),会发现实际可以转化为矩阵相邻两项 \[\begin{matrix}1 & 3 &am ...

  10. 【树状数组】【P3902】 递增

    传送门 Description 给你一个长度为\(n\)的整数数列,要求修改最少的数字使得数列单调递增 Input 第一行为\(n\) 第二行\(n\)个数代表数列 Output 输出一行代表答案 H ...