获取命令行的文件名

时间:2015-07-06 14:02:33

标签: python pyqt4

我希望有人可以教我如何获取文件名,然后将其作为字符串的一部分。我希望能够保存文件,然后使用该文件的名称来执行命令行。这是我到目前为止所拥有的。

def save(self):
        filename = QtGui.QFileDialog.getSaveFileName(self, "Save file", "", ".inp")
        if filename == "":
            pass
        else:
            nfile = open(filename, 'w')
            self.cursor.movePosition(self.cursor.Start, self.cursor.MoveAnchor)
            self.cursor.movePosition(self.cursor.End, self.cursor.KeepAnchor)
            text = self.cursor.selection()
            text1 = text.toPlainText()
            nfile.write(text1)
            nfile.close()

我想获取刚创建的文件的名称并将其插入此行:

import os
os.system("rungms file_name.inp 13-64 1 0 file_name.out")

2 个答案:

答案 0 :(得分:1)

这是使用QT方便QFileInfo的解决方案。它将使用文件名或路径。

filename="myFileName.something"
fileInfo=QtCore.QFileInfo(filename)
name=fileInfo.baseName()
myCommand="rungms %s.inp 13-64 1 0 %s.out"%(name,name)

或没有QT:

filename="myFileName.something"
name=filename.split(".")[0]
myCommand="rungms %s.inp 13-64 1 0 %s.out"%(name,name)

注意:使用“filename.foo1.foo2”,第一种方法将为您提供“filename.foo1”,第二种方法为“filename”

答案 1 :(得分:0)

使用os.path.splitext

from os import path

print(path.splitext("filename.inp")[0]+".out")

即使文件名中有多个句点,也不会计算用于制作隐藏文件的文件名开头的句号。