您的位置:首页 > 编程语言 > Python开发

Python基础之IO文件目录的操作

2017-10-12 12:00 651 查看
在程序设计的过程中我们必须和数据文件打交道,这些数据往往是存储在本地磁盘文件或者网络数据。这里我们主要侧重本地文件的操作,网络数据采集属于爬虫的范围。

在Abaqus二次开发过程中,我们主要运用Python进行处理Abaqus的odb数据文件处理成txt以供matlab进行数据运算,matlab再返回Abaqus能识别的inp文件进行建模。

1.文件的读写

首先读写涉及到IO模块,在使用之前必须导入相应模块

用到的函数包括:

open(‘hello.txt’,’w’):用于打开或者创建一个文件对象hello.txt,另一个参数是对文件的打开模式:w:表示写入;r:表示读取,b:表示以二进制形式操作文本,t:表示以文本形式打开(默认的就是这个),+:表示对文件进行更新,比如追加append

writelines():用来写入要记录的文件内容

readlines():用来读取对应文件的内容到一个列表中。

close():函数用于关闭文件对象。

以上就是常用创建文件的操作函数,也是创建文件对象的步骤。

实例:

#coding = utf-8

import io
#创建文件对象并写入数据
f1 = open('helloWy.txt','w')
str =['shanshui','wangyun','ynu','Python','Java']
for item in str:
item = item+"\n"
f1.writelines(item)
f1.close()

#对数据进行读取操作
f2 = open('helloWy.txt','r')
str2 = f2.readlines()
length = len(str2)
for item in str2:
print(item)
print('读取的字符长度'+length)
f2.close()
=====================================================
运行结果
5
shanshui
wangyun
ynu
Python
Java


2.目录操作:

在文件的基础上,目录操作也是一个新问题,目录操作用到模块:os;os.path;

常用方法:

os.getcwd():获取当前工作目录

os.path.dirname():返回当前文件对象的父级目录

os.listdir():返回当前文件下的所有子目录或者文件。

os.path.join(父级目录,文件名):函数用于将参数给定的目录和文件名拼接完整目录

os.path.isdir()/isfile():判断参数是否是文件夹/文件

实例:

#By shanshui 2017.10.12
#coding=utf-8

import os
import os.path

#显示当前文件所在的目录
currdir = os.getcwd()
print(type(currdir))
print('当前的目录文件夹是:'+currdir)

fatherdir = os.path.dirname(currdir)#该函数返回指定文件或文件的上一级目录的路径,也就是父级目录
print('当前的父目录为:'+fatherdir)
#列出当前文件上一级目录下的文件和目录
#并将信息保存到dir.txt中去

f = open('dir.txt','w')
infor = os.listdir(fatherdir)#该函数以列表的形式返回当前目录下的所有子目录和文件

FileNum = 0
DirNum = 0
for item in infor:
tempdir = os.path.join(fatherdir,item)#将所给的目录和文件名重新组合成为一个完整目录
if os.path.isdir(tempdir):
DirNum = DirNum+1
tempstr = 'dir:'+tempdir+'\n'
f.writelines(tempstr)
elif os.path.isfile(tempdir):
FileNum = FileNum+1
tempstr = 'file:'+tempdir+'\n'
f.writelines(tempstr)

tempstr1 = 'you get '+str(DirNum)+'dirs in the path.\n'
tempstr2 = 'you get '+str(FileNum)+'files in the path.\n'
f.writelines(tempstr1)
f.writelines(tempstr2)
f.close()
==================================================
运行结果:
dir:C:\Users\Administrator\PycharmProjects\Abaqus
dir:C:\Users\Administrator\PycharmProjects\CourseCode
dir:C:\Users\Administrator\PycharmProjects\DataProcessTest
dir:C:\Users\Administrator\PycharmProjects\GUI
dir:C:\Users\Administrator\PycharmProjects\PythonBook
dir:C:\Users\Administrator\PycharmProjects\PythonTest
dir:C:\Users\Administrator\PycharmProjects\Scraping
dir:C:\Users\Administrator\PycharmProjects\Test
dir:C:\Users\Administrator\PycharmProjects\untitled
dir:C:\Users\Administrator\PycharmProjects\WebScraper
you get 10dirs in the path.
you get 0files in the path.


在os中还存在一个强大迭代函数:os.walk():逐级向下返回目录下的所有文件

3.文件的清理操作:在ABAQUS的工作目录下,会形成很多文件,对我们有用的只有odb,inp,cae,fil等文件,所以对其他文件进行清理就很有必要:

主要的调用函数:

os.chdir(targetdir):用来改变当前的工作目录。

os.mkdir(path):以参数给定的目录路径创建文件

os.path.splitext(path):对给定路径的的文件把文件名和文件的扩展名分离开。返回(文件名,扩展名

os.remove(path):删除指定文件路径的文件对象。

运用实例:对Abaqus的运行结果进行文件清理和保留有用文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 数据 abaqus