【问题标题】:Created File in Python在 Python 中创建文件
【发布时间】:2022-11-15 16:42:29
【问题描述】:

如果我在 python 中使用 open(file, 'x') 创建一个 vhdl 文件,而不是使用 file.write("Some Plaintext") 并想看看它是否有效,打开文件并没有显示上面字符串中的明文.有人可以向我解释吗? 它在创建的 vhdl 文件中显示类似“MgZnVua3Rpb25pZXJ0”的内容。

1 打开(文件,'x') 2 file.write("一些明文") 3 文件.close()

【问题讨论】:

  • 请显示您的实际代码。 open(file, 'x') 使它看起来好像file 是一个路径名,但是你使用file 作为file.write(...) 中的文件对象。您也没有将 open 的返回值分配给任何东西。
  • 这对我来说很像家庭作业。请分享您尝试使用的代码,然后我们可以帮助您解决问题。
  • 如果文件是一个包含不存在的文件名(路径)的字符串,那么您的代码将引发 AttributeError 异常,因为 Python 字符串没有写()属性

标签: python file text vhdl


【解决方案1】:

关注说明open(file, 'x')

如果文件f1.vhdl 存在,指令open(file, 'x') 将失败。

我认为问题的作者试图打开一个存在的文件VHDL,而文件的内容正是MgZnVua3Rpb25pZXJ0;指令open(file, 'x') 失败,因为文件存在并且write() 方法没有写入任何内容。

覆盖现有文件的代码

file_name = 'f1.vhdl'
#file = open(file_name, 'x')
file = open(file_name, 'w')    # <--- use 'w'
file.write("Some Plaintext")
file.close()

创建不存在文件的代码

以下代码在f1.vhdl文件中准确写入Some Plaintext

file_name = 'f1.vhdl'
file = open(file_name, 'x')
file.write("Some Plaintext")
file.close()

使用上下文管理器

使用上下文管理器的相同解决方案(创建不存在的文件):

file = 'f1.vhdl'
with open(file_name, 'x') as f:
    f.write("Some Plaintext")

【讨论】:

  • 你为什么要明确关闭文件?
  • 因为@skar 在它的问题中关闭了它。我希望我的代码能帮助他阐明他的想法。
  • 但她不使用上下文管理器!
  • @Cobra我添加没有上下文管理器的代码......
  • 您在这里使用名称file 来表示不同的事物。首先是文件的路径/名称,然后是文件句柄。这很令人困惑。您应该调用文件名file_name。当您使用内容管理器 (with) 时,您不必关闭文件。上下文管理器会为您执行此操作。
猜你喜欢
  • 2012-01-23
  • 1970-01-01
  • 2018-06-19
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 2018-12-10
相关资源
最近更新 更多