相关文章推荐
腼腆的柠檬  ·  python ...·  3 周前    · 
有情有义的大白菜  ·  python ...·  3 周前    · 
完美的馒头  ·  python QTreeWidget ...·  2 周前    · 
失眠的烤红薯  ·  python qt textBrowser ...·  2 周前    · 
帅气的领带  ·  【Pyspark ...·  昨天    · 
坚强的紫菜汤  ·  java httpclient ipv6 ...·  2 月前    · 

在cmd中运行时,Python脚本没有创建一个文本文件

1 人关注

我试图创建一个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 Code中运行时,一切都按计划进行,但在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的问题,我认为我不需要,但承认我对这个问题不是那么了解。

总结一下,我怎么也想不明白,为什么这个脚本能起作用?exclusively in VS Code.

2 个评论
我不认为'Desktop/examplefile.txt'是完整的路径。尝试使用桌面的绝对路径作为保存路径
尝试为save_path变量提供完整的路径 C:\Users\MyName\Desktop ,而不是 Desktop
python
text-files
FlipFlrpn
FlipFlrpn
发布于 2020-03-15
1 个回答
Traction
Traction
发布于 2020-03-15
已采纳
0 人赞同

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

你想创建的是 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())