跨平台处理方式
获得当前文件夹的绝对路径,如下:
import os
path1=os.path.abspath('.') #表示当前所处的文件夹的绝对路径
path2=os.path.abspath('..') #表示当前所处的文件夹上一级文件夹的绝对路径
所以我们常设置一个path1的全局变量来表示当前的绝对路径,再加上相对路径来打开需要打开的文件,这么做是为了在不同的平台上不冲突,因为不同平台在相对路径上的表示上存在区别。
Windows平台
我们常用’/‘来表示相对路径,’\‘来表示绝对路径,上面的路径里\是转义的意思.
前两个都是相对路径,第三个则是绝对路径。
open('aaa.txt')
open('/data/bbb.txt')
open('D:\\user\\ccc.txt')
#D:\user\aaa.txt
#D:\user\data\bbb.txt
#D:\user\ccc.txt
Linux平台
打开文件
打开文件
如果你要对一个文件进行读或写,你必需先用Python内置的open函数打开它,创建一个文件对象File Object,你同时必需指定文件打开模式(读r,写w,还是读和写)。值得注意的是当你打开非文本文件如图片或PDF时侯,必需用rb或wb模式。b代表二进制文件。例子如下。
# 以读模式打开文本文件
txtFileObj = open('some.txt', 'r')
# 以读模式打开非文本文件
pdfFileObj = open('some.pdf', 'rb')
File对象的属性
一个文件被打开后,你j就有了一个file对象,这时你可以通过以下属性得到有关该文件的各种信息,比如名字,访问模式。
属性描述file.closed返回true如果文件已被关闭,否则返回false。file.mode返回被打开文件的访问模式。file.name返回文件的名称。file.softspace如果用print输出后,必须跟一个空格符,则返回false。否则返回true。
阅读文件
阅读文件,你可以用file对象自带的read方法。例子如下:
# 打开非文本文件
txtFileObj = open('some.txt', 'r')
print(txtFileObj.read())
# 打开非文本文件
pdfFileObj = open('original.pdf', 'rb')
pdfFileObj.read()
########## 当你的文本文件有多行时,而你不想一次性打印出所有内容,你可以这么做。###########
# 以读模式打开非文本文件
txtFileObj = open('some.txt', 'r')
# 打印第5行
print(txtFileObj.read(5))
# 逐行打印
print(txtFileObj.readlines())
# 或者如下操作
for line in txtFileObj:
print(line)
写入文件
要将数据写入一个文件,你必需以写或读写的模式先创建一个文件对象,然后使用write方法写入。下面是两个例子。
# 以写模式创建文件对象,然后写入
txtFileObj = open('some.txt', 'r+')
txtFileObj.write("Hello, world")
txtFileObj.close()
# 以写模式打开非文本文件,然后写入
f = some_data
with open('some.pdf', 'wb+') as pdfFileObj:
for chunk in f.chunks():
pdfFileObj.write(chunk)
关闭文件与with声明
当你打开一个文件对象后,你一定要记住用f.close()关闭这个文件对象,这样才会释放系统资源。如果你老是忘记关闭一个文件,我们强烈建议使用python的with声明打开一个文件。这样在你完成文件读写操作后,python会自动关闭文件对象。例子如下:
# 以写模式创建文件对象,然后写入
with open('some.txt', 'r+') as txtFileObj:
txtFileObj.write("Hello, world")
参考
https://zhuanlan.zhihu.com/p/37002940
https://blog.csdn.net/databatman/article/details/49453953
python,os操作文件,文件路径(上一级目录):https://blog.csdn.net/longshenlmj/article/details/13294871
import os
'''获得当前路径
'''
cwd=os.getcwd()
print(cwd)
'''
得到当前文件夹下的所有文件和文件夹
'''
print(os.listdir())
'''
delete file
'''
os.remove('sw.vaps')
print(os.listdir())
'''
删除单个目录和多个目录
'''
os.removedir()
os.removedir()
'''
检查是否是文件/文件夹
'''
print(os.path.isfile('/Users/liuxiaolong/PycharmProjects/untitled/sw.vaps'))
print(os.path.isdir('/Users/liuxiaolong/PycharmProjects/untitled/sw.vaps'))
'''
检查文件路径是否存在
'''
print(os.path.exists('/Users/liuxiaolong/PycharmProjects/untitled/iiii'))
'''
分离文件名
分离扩展名
'''
[dirname,filename]=os.path.split('/Users/liuxiaolong/PycharmProjects/untitled/sw.vaps')
print(dirname,"\n",filename)
[fname,fename]=os.path.splitext('/Users/liuxiaolong/PycharmProjects/untitled/sw.vaps')
print(fname,"\n",fename)
'''
获得文件路径
获得文件名
获得当前环境
'''
print("get pathname:",os.path.dirname('/Users/liuxiaolong/PycharmProjects/untitled/sw.vaps'))
print("get filename:",os.path.basename('/Users/liuxiaolong/PycharmProjects/untitled/sw.vaps'))
print(os.getenv)