[关闭]
@zhangyu756897669 2017-09-13T15:27:12.000000Z 字数 3573 阅读 647

读取和写入文件

python官方文档


读取和写入文件

变量是在程序运行时存储数据的一种很好的方法,但如果您的数据在程序完成后仍然保留,则需要将其保存到文件中。您可以将文件的内容视为单个字符串值,大小可能为千兆字节。在本章中,您将学习如何使用Python在硬盘驱动器上创建,读取和保存文件。

文件和文件路径

一个文件有两个关键属性:一个文件名(通常写成一个字)和一个路径。路径指定文件在计算机上的位置。例如,我的Windows 7笔记本电脑上有一个文件,文件名为project.docx C:\Users\asweigart\Documents. 最后de docx的文件名部分称为文件扩展名,并告诉您一个文件的类型。 project.docx 是一个 Word文档,Users, asweigart, and Documents 为全部引用文件夹(也称为目录) 文件夹可以包含文件和其他文件夹。例如,project.docx位于Documents文件夹中,该文件夹位于Users文件夹内的asweigart文件夹中

C:\ 路径的一部分是根文件夹,其中包含所有其他文件夹。

Windows上的反斜杠和OS X和Linux上的正斜杠

  1. import os
  2. os.path.join('usr', 'bin', 'spam')
  3. <div class="md-section-divider"></div>

'usr\bin\spam'

  1. myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
  2. for filename in myFiles:
  3. print(os.path.join('C:\\Users\\asweigart', filename))
  4. <div class="md-section-divider"></div>

C:\Users\asweigart\accounts.txt
C:\Users\asweigart\details.csv
C:\Users\asweigart\invite.docx

当前工作目录

  1. import os
  2. <div class="md-section-divider"></div>
  1. os.getcwd()

'C:\Users\zhangyu'

  1. os.chdir('C:\\Windows\\System32')
  2. os.getcwd()

'C:\Windows\System32'

如果您尝试更改为不存在的目录,Python将显示错误。

绝对路径 VS 相对路径

有两种方法来指定文件路径。
* 绝对路径,始终以根文件夹开头
* 相对路径,相对于程序的当前工作目录

绝对路径与相对路径.jpg-41.6kB

用os.makedirs()创建新文件夹

您的程序可以使用os.makedirs()函数创建新文件夹(目录)。

  1. import os
  2. os.makedirs('C:\\delicious\\walnut\\waffles')

这不仅会创建C:\ delicious文件夹,还会在C:\ delicious中的一个核心文件夹以及C:\ delicious \ walnut中的一个waffles文件夹。也就是说,os.makedirs()将创建任何必要的中间文件夹,以确保完整的路径存在。

os.path模块

处理绝对和相对的路径

os.path模块提供返回相对路径的绝对路径并检查给定路径是否为绝对路径的函数。

  1. os.path.abspath('.')

'C:\Windows\System32'

  1. os.path.abspath('.\\Scripts')

'C:\Windows\System32\Scripts'

  1. os.path.isabs('.')

False

  1. os.path.isabs(os.path.abspath('.'))

True

  1. os.path.relpath('C:\\Windows', 'C:\\')

'Windows'

  1. os.path.relpath('C:\\Windows', 'C:\\spam\\eggs')

'..\..\Windows'

图像2.png-9.6kB

  1. path = 'C:\\Windows\\System32\\calc.exe'
  2. os.path.basename(path)

'calc.exe'

  1. os.path.dirname(path)

'C:\Windows\System32'

  1. calcFilePath = 'C:\\Windows\\System32\\calc.exe'
  2. os.path.split(calcFilePath)

('C:\Windows\System32', 'calc.exe')

  1. (os.path.dirname(calcFilePath), os.path.basename(calcFilePath))

('C:\Windows\System32', 'calc.exe')

  1. calcFilePath.split(os.path.sep)

['C:', 'Windows', 'System32', 'calc.exe']

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注