Python脚本在cmd中运行时不创建文本文件

2024-06-16 14:52:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个python脚本(知识非常有限),它将在运行程序的人的桌面上创建一个文本文档。我所拥有的实际创建文本文件的部分如下所示:

save_path = 'Desktop'
name_of_file = "examplefile"
completeName = os.path.join(save_path, name_of_file+".txt")        
file1 = open(completeName, "w+")
toFile = '''text'''
file1.write(toFile)
file1.close()

在Visual Studio代码中运行时,一切都按预期运行,但在CMD中运行时,我收到错误:

  File "file.py", line 101, in <module>
    open(completeName, "w+")
FileNotFoundError: [Errno 2] No such file or directory: 'Desktop\\examplefile.txt'

在py.exe中运行时,它会崩溃

我使用了C:\Users\MyName\Desktop>py file.pyC:\Users\MyName\Desktop>python3 file.py来执行脚本,并且出现了相同的错误,我想这不会让我感到惊讶

我在网上看了很多关于如何解决这个问题的内容,但我所看到的几乎所有内容都只是重申使用open(filename, "w+")来创建文本文件(我已经知道)或是关于使用PATH,我认为我不需要它,但我承认我并不是很了解它

总而言之,我一辈子都搞不明白为什么脚本只在VS代码中工作


Tags: ofpathnamepytxt脚本saveopen
1条回答
网友
1楼 · 发布于 2024-06-16 14:52:13

这是因为您定义文件路径的方式

您正在尝试创建文件Desktop\examplefile.txt。因此,当您运行脚本时,它会从当前工作目录(运行脚本的路径)中查找Desktop目录,并在其中创建examplefile.txt文件

但是您得到的错误意味着它无法从您当前的工作目录中找到Desktop目录。这是因为您是从C:\Users\MyName\Desktop运行它的,而其中没有Desktop目录

您应该做的是使用一个路径,该路径将始终解析到所需的目录。例如,如果要在桌面上创建文件:

save_path = os.path.join(os.environ['USERPROFILE'], "Desktop")

这将始终解析为Windows上用户的Desktop目录

在Windows上,USERPROFILE环境变量表示用户主目录的路径

如果您正在寻找跨平台解决方案来获取用户的主目录,您可以使用以下方法:

# Python 3.5+
from pathlib import Path
home_path = str(Path.home())

# Python 2, <3.5
from os import path
home_path = path.expanduser("~")

相关问题 更多 >