CH8python读写文件 python快速编程

os.path.join()函数利用来添加格式的 返回一个文件路径的字符串 包含正确的路径分隔符

>>> import os
>>> for file in myFiles:
...    print(os.path.join('/usr/bin/',file))
... 
/usr/bin/aaa.txt
/usr/bin/ddssdd.txt
/usr/bin/sadf.txt
  • 切换工作目录
******当前工作目录**************
>>> os.getcwd()
'/root'
>>> os.chdir('/root/')
>>> os.getcwd()
'/root'
>>> os.chdir('/root/Python-3.6.4/PC')
>>> os.getcwd()
'/root/Python-3.6.4/PC'

os.makedirs()创建新文件夹

import os
os.makedirs('/datadata/ddd')
[root@izwz9eitqs320brxl6owssz datadata]# tree
.
└── ddd
  • 处理绝对路径和相对路径:
    os.path.abspath(path):返回参数的绝对路径的字符串 将相对路径 转换为 绝对路径。
    os.path.isabs(path):如果参数是绝对路径 返回True 参数是相对路径 返回False。
    os.path.relpath(path):返回从start路径到path的相对路径的字符串 无start 使用当前目录为开始路径。
>>> import os
>>> os.path.abspath('.')
'/datadata'
>>> os.path.abspath('/datacode')
'/datacode'
>>> os.path.isabs('.')
False
>>> os.path.isabs(os.path.abspath('.'))
True
>>> os.path.relpath('/datadata','/datacode')
'../datadata'
  • os.path.basename(path),os.path.dirname(path) == os.path.split() (返回两个值)
  • split()返回每个文件夹的字符串的列表
>>> import os
>>> path = '/usr/etc/abc.txt'
>>> os.path.basename(path),os.path.dirname(path)
('abc.txt', '/usr/etc')
>>> os.path.split(path)
('/usr/etc', 'abc.txt')
>>> '/usr/bin'.split(os.path.sep)
['', 'usr', 'bin']
  • os.path.sep变量设置为正确的文件夹分割斜杠
>>> os.path.sep
'/'
  • 检查路径有效性
    如果提供路径不存在 许多py函数会奔溃报错 os.path模块提供了一些函数 用于检测的路径是否存在以及是文件还是文件夹。
>>> os.path.exists('/usr/bin')
True
>>> os.path.isdir('/usr/bin')
True
>>> os.path.isfile('/usr/bin')
False
>>> os.listdir('/usr/etc/abc')
['abc.txt']
>>> os.path.getsize('/usr/etc/abc.txt')
612
  • 求文件大小和文件夹内容
import os

totalSize = 0
for filename in os.listdir('C:\\boot'):
    totalSize = totalSize + os.path.getsize(os.path.join('C:\\boot',filename))

print(totalSize)
  • 文件读写过程
  • 一般三个步骤:
    • 1.调用open()函数 返回一个File对象
    • 2.调用File对象的read()和write()方法
    • 3.调用File对象的close()方法,关闭该文件
Windows--
helloFile = open('D:\j2ee\bookshop源码\bookshop\src\111.txt')
helloContent = helloFile.read()
helloContent

这里写图片描述

  • 写入文件
bcFile = open('D:\github\Github3340\gt.txt','w')
bcFile.write('Hello.TXT!')
bcFile.close()

bcFile = open('D:\github\Github3340\gt.txt','a')
bcFile.write('Bcon is not a Vegetable.')
bcFile.close()

bcFile = open('D:\github\Github3340\gt.txt')
content = bcFile.read()
bcFile.close()
print(content)

这里写图片描述

  • 用shelve模块保存变量
    利用shelve模块可以将python程序中的变量保存到二进制的shelf文件中。程序可用从硬盘中恢复变量的数据。让你在程序中添加‘保存’和‘打开’功能.
>>> import shelve
>>> shFile = shelve.open('mydate')
>>> cats = ['zombine','Bob','Alice']
>>> shFile['cats'] = cats
>>> shFile.close()
>>> 
>>> 
>>> shFile = shelve.open('mydate')
>>> type(shFile)
<class 'shelve.DbfilenameShelf'>
>>> shFile['cats']
['zombine', 'Bob', 'Alice']
>>> shFile.close()

shelve模块读写数据 首先导入 调用open并传入一个文件名,然后将返回的值保存在一个变量中。可以对这个变量的shelf进行修改 like dict 最后close()。

>>> shFile = shelve.open('mydate')
>>> list(shFile.keys())
['cats']
>>> list(shFile.values())
[['zombine', 'Bob', 'Alice']]
>>> shFile.close()
  • 使用pprint.pformat()函数保存变量
    pprint.pprint()将列表中或自动的内容漂亮打印到屏幕
    pprint.pformat()格式语法上支持python代码
>>> import pprint
>>> cats = [{'name':'bob','desc':'chubby'},{'name':'Alice','desc':'fluffy'}]
>>> pprint.pformat(cats)
"[{'desc': 'chubby', 'name': 'bob'}, {'desc': 'fluffy', 'name': 'Alice'}]"
>>> fileoj = open('myCat.py','w')
>>> fileoj.write('cats =' + pprint.pformat(cats) + '\n')
79
>>> fileoj.close()

>>> import myCat
>>> myCat.cats
[{'desc': 'chubby', 'name': 'bob'}, {'desc': 'fluffy', 'name': 'Alice'}]
>>> myCat.cats[0]
{'desc': 'chubby', 'name': 'bob'}
>>> myCat.cats[1]
{'desc': 'fluffy', 'name': 'Alice'}
>>> myCat.cats[1]['name']
'Alice'

创建一个py文件的好处在于 因为是一个文本文件 所以任何人都可以用一个简单的文本编辑器读取和修改该文件的内容。对于大多数应用 利用shelve报存数据 是将变量保存到文件的最佳方法

猜你喜欢

转载自blog.csdn.net/ichglauben/article/details/81707364