如何通过Python创建和打开文件?

如何通过Python创建和打开文件?,python,file,python-2.7,io,Python,File,Python 2.7,Io,我有一个非常基本的问题,但我试着搜索过去的帖子,似乎找不到任何有帮助的。我正在学习Python中的文件I/o。到目前为止,我看到的所有教程似乎都跳过了一个步骤,只是假设已经创建了一个文件,只是说了一些类似于handleName=open('text.txt',r'),但这给我留下了两个未回答的问题: 我必须手动创建文件并命名吗?我使用的是Mac电脑,所以我是否需要进入应用程序,打开文本编辑,创建并保存文件,或者我是否可以通过空闲状态下的某个命令来实现这一点 我尝试手动创建一个文件(如上所述),但

我有一个非常基本的问题,但我试着搜索过去的帖子,似乎找不到任何有帮助的。我正在学习Python中的文件I/o。到目前为止,我看到的所有教程似乎都跳过了一个步骤,只是假设已经创建了一个文件,只是说了一些类似于
handleName=open('text.txt',r')
,但这给我留下了两个未回答的问题:

  • 我必须手动创建文件并命名吗?我使用的是Mac电脑,所以我是否需要进入应用程序,打开文本编辑,创建并保存文件,或者我是否可以通过空闲状态下的某个命令来实现这一点
  • 我尝试手动创建一个文件(如上所述),但是当我尝试输入
    openfile=open('test\u readline','r')
    ,我得到了错误:
    IOError:[Errno 2]没有这样的文件或目录:'abc'
  • 关于这个错误,我假设我必须声明路径,但是如何在Python中声明呢

    openfile = open('test_readline', 'w')
    
                                      ^^
    
    如果文件不存在,在
    write
    模式下打开将创建该文件。现在您可以写入它并关闭文件指针,它将被保存

  • 我必须手动创建文件并命名吗
  • 您的意思是,作为一个用户,您必须使用现有的工具来创建一个文件,然后返回Python来处理它吗?不需要。Python拥有创建文件所需的所有工具。如中所述,必须使用打开文件,如果文件不存在,将创建该文件。您选择了读取模式,如果指定的位置没有可读取的文件,该模式将(正确地)抛出错误,这将导致

  • 我假设我必须声明路径,但是如何在Python中声明呢
  • 如果您不这样做(如果您说,例如,“filename.txt”),Python将在其当前工作目录中查找。默认情况下,这是调用Python解释器时shell的当前工作目录。这几乎总是正确的,除非某些程序有它,这是不寻常的。要指定路径,可以像对文件名所做的那样对其进行硬编码:

    open('/full/path/to/filename.txt')
    
    或者,您可以使用模块构建它


    例如:

    我创建了一个空目录,并在其中打开了Python解释器

    >>> with open('test.txt'): pass
    ... 
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IOError: [Errno 2] No such file or directory: 'test.txt'
    >>> with open('test.txt', 'w'): pass
    ... 
    >>> 
    
    现在我创建了一个名为'subdir'的子目录,并将文本文件移到其中。我在命令行上完成了这项工作,但也可以在Python中轻松完成:

    >>> with open('test.txt'): pass
    ... 
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IOError: [Errno 2] No such file or directory: 'test.txt'
    >>> with open('subdir/test.txt'): pass
    ... 
    

    (举例来说,这只是一种方法。)

    Python将自动使用默认路径

    import os
    default_path = os.getcwd()          ## Returns the default path
    new_path = "C:\\project\\"          ## Path directory
    os.chdir(path)                      ## Changes the current directory
    
    更改路径后,写入和读取的文件将位于C:\project中。如果您尝试在其他地方阅读项目,程序将失败


    os.chdir是在python中声明或设置路径的方式。要能够读取任何文件,该文件必须存在。对吗?现在看这里,文件I/O的语法如下所示:

    fp = open('file_name', mode) # fp is a file object
    
    第二个参数,即mode,描述了文件的使用方式
    w
    mode将打开第一个参数中给定名称的任何现有文件(如果存在)。否则,它将创建一个同名的新文件。此外,如果您在Windows上,希望以二进制模式打开文件,请将
    b
    附加到该模式。要打开文件以二进制模式写入,请使用
    wb
    。请注意,如果您试图以
    w
    (写入)模式打开任何现有文件,则同名的现有文件将被删除。如果要在不删除旧数据的情况下写入现有文件,请使用
    a
    模式。它会将新数据添加到上一个文件的末尾

    fw = open('file_name','w')
    fa = open('file_name','a') # append mode 
    
    要了解详细信息,您可以访问 .
    我希望这有帮助

    我在这里给出了一个非常完整的答案:我的帖子应该详细介绍两位的最后一句话,关于os.path.should
    new\u path=“C:\\project\\\”
    我试图编辑代码,但代码太短,无法发布。谢谢sauls。不使用double\\n以前把我搞砸了。
    fp = open('file_name', mode) # fp is a file object
    
    fw = open('file_name','w')
    fa = open('file_name','a') # append mode