获取命令行的文件名

Get name of file for command line

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

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")

这里有一个使用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"

使用os.path.splitext

from os import path

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

即使您的文件名中有多个句点,此方法也有效,并且不计算用于制作隐藏文件的文件名开头的句点。