我正在尝试保存一个文件,我用"open“函数创建了这个文件。我尝试了几乎所有的方法来改变目录,但是都没有用。该文件总是保存在我的文件的文件夹中,我以前读过这个文件夹。
file = open(fname[0] + ft, 'w')
file.write("Test")
file.close()所以这很简单,但是我要补充什么,才能改变创造的道路呢?
单个函数中的“文件”对话框:
global fname
fname = QFileDialog.getOpenFileName(None, 'Please choose your File.',"C:\\Program Files", "Text-Files(*.txt)") 文件类型(在一个单独的函数中也是如此),我通过勾选复选框来设置文件类型,ft将设置为.py或.pyw
if self.exec_py.isChecked() == True:
global ft
ft = ".py"我应该说我已经尝试过os.path.join和os.chdir了,但是文件无论如何都会被打印出来。有什么解决办法或方法来解决这个问题?下面是我尝试的方法:
tmppath = "C:/temp"
tmp = os.path.join(tmppath,fname[0]+ft)
file = open(tmp, 'w')发布于 2016-04-05 22:48:11
您的问题在细节上有点简短,但我猜想fname是QFileDialog返回的元组,因此fname[0]是原始文件的绝对路径。因此,如果您显示fname[0],您将看到如下所示:
>>> fname[0]
'C:\\myfolder\\file.txt'现在,看看当您尝试在os.path.join中使用它时会发生什么
>>> tmppath = 'C:\\temp'
>>> os.path.join(tmppath, fname[0])
'C:\\myfolder\\file.txt'没什么!结论:尝试连接两个绝对路径只需返回原始路径不变。您需要做的是获取原始路径的basename,并将其连接到要保存它的文件夹中:
>>> basename = os.path.basename(fname[0])
>>> basename
'file.txt'
>>> os.path.join(tmppath, basename)
'C:\\tmp\\file.txt'现在您可以使用这个新路径将您的文件保存在正确的位置。
发布于 2016-04-05 21:42:30
您需要提供完整的filepath
with open(r'C:\entire\path\to\file.txt', 'w') as f:
f.write('test')如果您只是提供一个没有路径的文件名,它将使用当前的工作目录,它不一定是您运行的python脚本位于的目录。它将是您启动脚本的目录。
C:\Users\admin> python C:\path\to\my_script.py在这种情况下,当前的工作目录是C:\Users\admin,而不是C:\path\to。
https://stackoverflow.com/questions/36437326
复制相似问题