【问题标题】:Python create a directory and save .txt file into itPython 创建一个目录并将 .txt 文件保存到其中
【发布时间】:2019-11-14 23:54:01
【问题描述】:

我目前正在使用 Python Socket 库完成学校作业。 我有 server.py 和 client.py,基本上,我请求从客户端到服务器端的 .txt 文件的副本,客户端需要接收文本元素,创建一个新的 .txt 文件和目录保存它。

我被困在客户端的文件处理中。 我可以创建一个目录并将 .txt 文件保存到其中的最佳方法是什么?

# create a new .txt file for incoming data and save to new directory
with open(new_dir / "copied_text_file.txt", '+w') as text:
    text.write(file_text)

我试过这种方式,但它没有保存在我的新目录中。 感谢您的帮助,谢谢!

【问题讨论】:

  • 你的问题与sockets无关; file_text 中的数据可能来自任何地方。 new_dir 是 pathlib.Path 的实例吗?
  • 要创建一个目录,有os.mkdir。还有os.makedirs

标签: python python-3.x


【解决方案1】:

如果您尝试创建路径,请使用os.path 方法,具体参见join。

【讨论】:

    【解决方案2】:

    您的新目录的名称是“new_dir”吗?如果是这样,命令需要是open("new_dir/copied_text_file.txt", "+w")。如果不是并且 new_dir 是目录的字符串,则使用 open((new_dir + "/copied_text_file.txt"), "+w") 更好的是使用 os.path.join(new_dir, "copied_text_file.txt") 并在结果路径名上调用 open。

    【讨论】:

      【解决方案3】:

      open() 将字符串作为您要访问的文件的目标 一起工作。您可以像使用的那样传递一个 URI 在命令行上工作时。

      import os
      
      with open(os.path.join(new_dir / "copied_text_file.txt", '+w')) as text:
          text.write(file_text)
      

      您可以与+ 连接,

      with open(new_dir+'/'+ "copied_text_file.txt", '+w')) as text:
          # ...
      

      但是,使用 + 会更低,因为 path.join 位于内部 编译的 c 代码 python 解释器运行起来更容易, 而不是必须在 python 中进行连接,它有更多 开销高于 CPython 模型。

      https://docs.python.org/3.5/library/os.path.html#os.path.join

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-03
        • 2020-07-06
        • 1970-01-01
        相关资源
        最近更新 更多