Python数据分析(二)

 

文件与文件路径

os.path.join()会返回一个文件路径的字符串

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

根据文件名列表生成文件路径

myFiles = ['a.txt', 'b.csv', 'c.docx']
for filename in myFiles:
    print(os.path.join('D:\\temp\\example', filename))

改变当前工作目录

os.getcwd()
os.chdir('D:\\Peace\\Desktop')
os.getcwd()

创建文件夹

os.mkdir('D:\\Peace\\Desktop\\mkdirexample')

os.path.abspath(path)将返回参数的绝对路径的字符串。

os.path.isabs(path),如果参数是一个绝对路径,就返回 True,如果参数是 一个相对路径,就返回 False。

os.path.relpath(path, start)将返回从 start 路径到 path 的相对路径的字符串。 如果没有提供 start,就使用当前工作目录作为开始路径。

os.path.abspath('.')
os.path.abspath('.\\example')
os.path.isabs('.')
os.path.isabs(os.path.abspath('.'))
os.path.relpath('D:\\Peace\\Desktop', 'D:\\')
os.path.relpath('D:\\Peace\\Desktop', 'D:\\Peace')

获取一个路径的目录名称和基本名称

calcFilePath = 'D:\\Peace\\Desktop\\text.txt'
os.path.split(calcFilePath)
# 可以直接调用os.path.dirname()和 os.path.basename(),将它们的返回值放在 一个元组中
(os.path.dirname(calcFilePath), os.path.basename(calcFilePath))
# 分割文件路径
calcFilePath.split(os.path.sep)

获取一个路径中文件的字节数

os.path.getsize('D:\\Peace\\Desktop\\周志2.md')

获取一个目录中的文件名字符串列表

os.listdir('D:\\Peace\\Desktop')

获取一个目录中所有文件的总字节数

totalSize = 0
for filename in os.listdir('D:\\Peace\\Desktop'):
    totalSize = totalSize + os.path.getsize(os.path.join('D:\\Peace\\Desktop', filename))
totalSize

检测给定的路径是否存在

os.path.exists('D:\\Peace\\Example')

检测是否为存在的文件夹

os.path.isdir('D:\\Peace\\dfdfasd')

检测是否为存在的文件

os.path.isfile('D:\\Peace\\Desktop\\周志2.md')

文件读写

读文件

# 文本读取
with open('examples/hello.txt', 'rt') as f:
    data = f.read()
    print(data)

# 文本逐行读取
with open('examples/hello.txt', 'rt') as f:
    for line in f:
        print(line)

# 不使用with语句,需要用close手动关闭文件
f = open('examples/hello.txt', 'rt')
f.read()
f.close()

写文件

# 文本覆写
text1 = '233'
text2 = '455'
with open('examples/hello.txt', 'wt') as f:
    f.write(text1)
    f.write(text2)
    f.write('\n')

# 文本添加
line1 = '899'
line2 = '788'
with open('examples/hello.txt', 'at', encoding='UTF-8') as f:
    print(line1, file=f)
    print(line2, file=f)

用shelve模块进行二进制读写

import shelve
shelfFile = shelve.open('examples/mydata')
cats = ['zophie', 'Pooka', 'Simon']
shelfFile['cats'] = cats
shelfFile.close()
shelfFile = shelve.open('examples/mydata')
type(shelfFile)
shelfFile['cats']
shelfFile.close()