读写文件

文件有两个关键属性: “文件名”和“属性”

os.path.join函数用法:

>>> import os
>>> os.path.join('usr', 'bin', 'spam')
'usr\\bin\\spam'

>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in myFiles:
    print(os.path.join('C:\\Users\\asweigart', filename))
C:\Users\asweigart\accounts.txt
C:\Users\asweigart\details.csv
C:\Users\asweigart\invite.docx

当前工作目录

  os.getcwd()函数-->返回当前工作目录

  os.chdir()函数-->修改当前工作目录

>>> import os
>>> os.getcwd()
'C:\\Python34'
>>> os.chdir('C:\\Windows\\System32')
>>> os.getcwd()
'C:\\Windows\\System32'

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

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

处理绝对路径和相对路径
  1. os.path.abspath(path):返回参数的绝对路径的字符串

  2. os.path.isabs(path):如果参数是一个绝对路径,就返回 True,如果参数是一个相对路径,就返回 False。
  3.os.path.relpath(path,start):返回从 start 路径到 path 的相对路径的字符串

>>> os.path.abspath('.')
'C:\\Python34'
>>> os.path.abspath('.\\Scripts')
'C:\\Python34\\Scripts'
>>> os.path.isabs('.')
False
>>> os.path.isabs(os.path.abspath('.'))
True

>>> os.path.relpath('C:\\Windows', 'C:\\')
'Windows'
>>> os.path.relpath('C:\\Windows', 'C:\\spam\\eggs')
'..\\..\\Windows'
>>> os.getcwd()
'C:\\Python34'

  4. os.path.dirname(path):将返回一个字符串,它包含 path 参数中最后一个斜杠之前的所有内容.

  5. os.path.basename(path):将返回一个字符串,它包含 path 参数中最后一个斜杠之后的所有内容

  6. os.path.split(path):将返回一个包括目录名称和基本名称的两个字符串的元组

>>> path = 'C:\\Windows\\System32\\calc.exe'
>>> os.path.basename(path)
'calc.exe'
>>> os.path.dirname(path)
'C:\\Windows\\System32'

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

>>> calcFilePath.split(os.path.sep)
['C:', 'Windows', 'System32', 'calc.exe']

 查看文件大小和文件夹内容:
  os.path.getsize(path)将返回path参数中文件的字节数

  os.listdir(path)将返回文件名字符串的列表。

>>> os.path.getsize('C:\\Windows\\System32\\calc.exe')
776192
>>> os.listdir('C:\\Windows\\System32')
['0409', '12520437.cpx', '12520850.cpx', '5U877.ax', 'aaclient.dll','xwtpdui.dll', 'xwtpw32.dll', 'zh-CN', 'zh-HK', 'zh-TW', 'zipfldr.dll']

>>> totalSize = 0
>>> for filename in os.listdir('C:\\Windows\\System32'):
        totalSize = totalSize + os.path.getsize(os.path.join('C:\\Windows\\System32', filename))
>>> print(totalSize)
1117846456    

 检查路径有效性:

>>> os.path.exists('C:\\Windows')
True
>>> os.path.exists('C:\\some_made_up_folder')
False
>>> os.path.isdir('C:\\Windows\\System32')
True
>>> os.path.isfile('C:\\Windows\\System32')
False
>>> os.path.isdir('C:\\Windows\\System32\\calc.exe')

False
>>> os.path.isfile('C:\\Windows\\System32\\calc.exe')
True

在Python中,读写文件的三个步骤:

  1. 调用 open()函数, 返回一个 File 对象, 默认的情况下,文件是以读的方式打开。
  2.调用 File 对象的 read()或 write()方法。
  3.调用 File 对象的 close()方法,关闭该文件。

读取文件内容:

  1. File对象的read()方法:将整个文件的内容读取为一个字符串值。

  2. File对象的readlines()方法: 将文件取得一个字符串的列表,列表中的每个字符串就是文本中的每一行

写入文件:

  1. ‘w’作为第二个参数传递给open()写模式:将覆写原有的文件,从头开始,就像你用一个新值覆写一个变量的值

  2.‘a’作为第二个参数传递给open()写模式:添加模式打开该文件

>>> baconFile = open('bacon.txt', 'w')
>>> baconFile.write('Hello world!\n')
13
>>> baconFile.close()
>>> baconFile = open('bacon.txt', 'a')
>>> baconFile.write('Bacon is not a vegetable.')
25
>>> baconFile.close()
>>> baconFile = open('bacon.txt')
>>> content = baconFile.read()
>>> baconFile.close()
>>> print(content)
Hello world!
Bacon is not a vegetable.

 

  

posted @ 2017-02-20 10:11  easy_wang  阅读(153)  评论(0编辑  收藏  举报