【问题标题】:Code won't write a file when using Python 3使用 Python 3 时代码不会写入文件
【发布时间】:2015-10-27 22:04:00
【问题描述】:

我使用 Notepad++ 作为编辑器,我正在从 Notepad 运行 Python 3。 这是代码:

import sys

def write():
    print ("Creating new file")
    name = 'NewFile.txt'
    file = open(name,'w')
    file.close()
write()

我认为问题不在于代码本身。当我像这样从 Windows PowerShell 运行代码时:python code.py,它可以正常工作并创建文件,但这是使用 Python 2.7 创建文件。我需要使用 Python 3。

当我从 Notepad++ 运行 Python 3 时,不会创建文件。

我尝试从 Notepad++ 运行 Python 2.7,但它不起作用。我是这样运行的:

C:\Python27\python.exe -i "$(FULL_CURRENT_PATH)"

或者使用 Python 3 我这样运行它:

C:\Python35\python.exe -i "$(FULL_CURRENT_PATH)" .

我也以管理员身份运行 Notepad++。

我认为我可以通过在 PowerShell 中同时运行 Python 3 和 Python 2 来解决这个问题,但我不知道这些问题的答案如何,而且这些问题的答案对我不起作用:

我愿意更改我的编辑器 (Notepad++) 或任何解决方案。

那么,我怎样才能让 Notepad++ 创建一个新文件呢?或者如何让 Python 3 在 PowerShell 中运行?或者我可以使用哪个编辑器来解决这个问题?或者我的代码可能是错误的。

编辑:当我说它不起作用时,我的意思是即使我的代码运行困难也不会创建文件(没有错误消息)。

要清楚,您所描述的似乎是:a)当您从命令提示符手动运行文件时,它会给出预期的结果; b) 当您通过 Notepad++ 运行它时,您根本看不到它运行的任何证据。是这样吗?

是的,没错。我也不确定什么是交互式解释器。

【问题讨论】:

  • “不起作用”是什么意思?你的程序会抛出错误吗?一只小猫在你的屏幕上跳舞吗?具体一点。
  • 要清楚,您所描述的似乎是:a)当您从命令提示符手动运行文件时,它会给出预期的结果; b) 当您通过 Notepad++ 运行它时,您根本看不到它运行的任何证据。对吗?
  • 特别是,既然您已经使用-i 运行Python,那么当您从notepad++ 运行交互式解释器时会出现吗?
  • 当您在 PowerShell 中不使用 -i 运行这两个语句时会得到什么结果?您的代码在 Python 2.7 和 3.5 中都适用于我。
  • 当我在没有 -i 的情况下运行它时,它不会创建文件。

标签: python powershell python-3.x


【解决方案1】:

很可能文件正在被创建,但不在您期望的位置。您定义的文件没有路径,因此它是在当前工作目录中创建的。检查文件的程序目录或系统目录。

使用完整路径指定输出文件以避免此问题:

import sys

def write():
    print ("Creating new file")
    name = 'C:/path/to/NewFile.txt'
    file = open(name,'w')
    file.close()
write()

【讨论】:

  • 就是这样。谢谢。
【解决方案2】:

我认为问题与您输入文件的编码有关。 当您打开文件时,输入一个与您的编辑器匹配的编码选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 2013-10-18
    • 2011-06-25
    • 2016-06-28
    • 2013-08-16
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多