为什么“\”和“/”混用?
os.getcwd() 发出反斜杠字符串。
另一方面,QFileDialog发出正斜杠字符串。
为什么?
例子
请执行此示例代码。
from PySide import QtGui
from PySide import QtCore
import sys
import os
class DirectoryPrinter(QtGui.QWidget):
def __init__(self,parent=None):
super(DirectoryPrinter,self).__init__(parent=None)
self.filedialog_pushbutton = QtGui.QPushButton("filedialog",self)
self.connect(self.filedialog_pushbutton,QtCore.SIGNAL("clicked()"),self.filename_getter)
def filename_getter(self):
print("from os.getcwd()",os.getcwd())
filename = QtGui.QFileDialog.getOpenFileName(self,"Select your file",os.path.expanduser("~"))[0]
print("from QFileDialog",filename)
def main():
try:
QtGui.QApplication([])
except Exception as e:
print(22,e)
directoryprinter = DirectoryPrinter()
directoryprinter.show()
sys.exit(QtGui.QApplication.exec_())
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
结果(在我的场合)
来自os.getcwd():J:\
来自QFileDialog:C:/Users/******/setup.py
我自己已经解决了这个问题,但是我将这个问题交给其他人解决。我认为这种问题尽可能地好。而且SOF中似乎没有。
我更新spyder和PyQt5。
conda update spyder
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: C:\Anaconda3
added / updated specs:
- spyder
The following packages will be downloaded:
package | build
---------------------------|-----------------
anaconda-custom | py36h363777c_0 9 KB
spyder-3.3.4 | py36_0 2.6 MB
spyder-kernels-0.4.4 | py36_0 68 KB
------------------------------------------------------------
Total: 2.7 MB
The following packages will be UPDATED:
spyder 3.3.3-py36_0 --> 3.3.4-py36_0
spyder-kernels 0.4.2-py36_0 --> 0.4.4-py36_0
The following packages will be DOWNGRADED:
anaconda 2019.03-py36_0 …Run Code Online (Sandbox Code Playgroud) anaconda ×1
errno ×1
pyqt5 ×1
pyside ×1
python ×1
python-3.6 ×1
qfiledialog ×1
spyder ×1
windows-10 ×1