《Abaqus GUI程序开发指南(Python语言)》——2.12 文件的操作

2.12 文件的操作

文件读写是复杂程序不可缺少的一部分,本节将简单介绍一下Python语言中对文件的交互使用方法。

2.12.1 文件的创建及打开方式
创建文件需要用到file()函数,该函数的简单声明方式如下。

file(filename,mode)

其中filename为文件名(可包含路径),mode为文件的打开方式,以下为创建文件的几个实例。

>>>f=file('num.py','w')
>>>f=file("C:\data.py","w")

另外,也可以通过open()函数创建或者打开文件,open()函数声明方式与file()函数类似,以下是采用open()创建和打开本地文件的实例。

>>>f=open('num.py','w')       
>>>f=open('num.py','w+')
>>>f=open("C:\data215.py","a")

使用上述两个函数创建或者打开文件时,一定要注意指定文件的打开方式,Python支持只读、写入、读写等多种文件打开方式,具体参照表2.7。

2.12.2 文件的读写
对于一个已创建的文件,经常需要对其进行读写操作。在Python语言中对文件读取和写入的函数分别为read()、readline()和write(),对于一次读写多行信息时,还可以调用readlines()函数和writelines()函数,具体使用方法参见以下实例。

【实例2.39】文件的写入

编写以下脚本,脚本命名为write.py,本实例脚本存放于随书配套资源\chapter2\2.12中,代码及注释如下。

#! /user/bin/Python
# -- coding:UTF-8 --
f=file('num.py','w')     #在工作目录下创建一个名为num.py的文件 
f.write("x=%6i\n" % 100)  #将字符串写入文件num.py
f.write("y=99\n")      #将字符串写入文件num.py
for i in range(1,101):
  f.write('%i\t' % i)    
  if i%10==0:
    f.write('\n')     #将整数按行列打印 
f.close()          #关闭文件

上述脚本执行后,在Python工作目录下会创建一个名为num.py的文件,其内容如下。

x=  100               
y=99                 
1  2  3  4  5  6  7  8  9 10 
11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 
31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 49 50 
51 52 53 54 55 56 57 58 59 60 
61 62 63 64 65 66 67 68 69 70 
71 72 73 74 75 76 77 78 79 80 
81 82 83 84 85 86 87 88 89 90 
91 92 93 94 95 96 97 98 99 100

提示

Python中支持.txt、.dat以及.py等多种文本格式的文件读写,上述代码中创建文件的指令也可以替换为以下文件格式。

f=file('num.txt','w')
f=file('num.dat','w')

【实例2.40】读取文本并将其内容写入新的文件

将实例2.39所生成的文件num.py拷贝到Python的当前工作目录下(例如D:\temp),然后编写以下脚本,脚本命名为read.py,本实例脚本存放于随书配套资源\chapter2\2.12中,脚本代码及注释如下。

f1=file('num.py','r')       #以只读方式打开文件num.py
f2=file('new_num.txt','w')     #以写入方式创建名为new_num.txt的文件       
str1=f1.read(9)             #从num.py中读取9个字符,形成字符串str1
str2=f1.read(5)             #从num.py中读取5个字符,形成字符串str2
f2.write('this is a new file.\n') #在new_num.txt中写入字符串'this is a new file.\n'
f2.write(str1)              #在new_num.txt中写入字符串str1
f2.write(str2)              #在new_num.txt中写入字符串str2
while True:
  line=f1.readline()         #循环读取num.py整行,并形成字符串
  if len(line)==0:
    break                 #遇空行终止循环
  data=line.strip().split('\t')   #将单个字符串按横向制表符'\t'分割成多个字符串
  N=len(data)               #计算子字符串的数量
  for i in range(0,N):
    f2.write(data[i]+',')      #将每个子字符串以逗号隔开写入new_num.txt
  f2.write('\n')             #换行
f1.close()                  #关闭文件
f2.close()

上述程序执行后,在当前工作目录下,会生成名为new_num.txt的文件,该文件的内容如下。

this is a new file.
x=  100
y=99
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,66,67,68,69,70,
71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,
91,92,93,94,95,96,97,98,99,100,
时间: 2025-01-02 19:11:39

《Abaqus GUI程序开发指南(Python语言)》——2.12 文件的操作的相关文章

《Abaqus GUI程序开发指南(Python语言)》——第二章 Python语言基础2.1 Python语言的特点

第二章 Python语言基础 Abaqus GUI程序开发指南(Python语言)Python语言是一种动态解释型编程语言,其功能强大,简单易学,支持面向对象编程(object-oriented programming),虽然由于其动态性致使程序解释执行速度比编译语言慢,但是随着Python语言的不断优化以及计算机硬件的迅猛发展,Python语言将会受到越来越多用户的关注.Python具有开源.自由等特征.它的简洁性和易用性使程序的开发过程变得简单,特别适用于快速应用程序开发. 本章将简要介绍P

《Abaqus GUI程序开发指南(Python语言)》——导读

前言Abaqus是目前国际上比较先进的大型通用有限元软件之一,它可以分析复杂的工程力学问题,其驾驭庞大求解规模的能力以及非线性力学分析功能均达到世界领先水平.Abaqus在欧洲.北美和亚洲许多国家得到了广泛的应用,其用户遍及航空.航天.船舶.机械.化工.冶金.土木.水利.材料.汽车.电器等各个工程和科研领域. Abaqus强大的非线性求解器.清晰友好的用户界面以及开放的开发平台使得近年来其用户数量迅速增长,同时随着用户软件使用能力的提高,对Abaqus提出了更高的使用要求.借助Abaqus软件为

《Abaqus GUI程序开发指南(Python语言)》——2.11 包导入

2.11 包导入 前面介绍了模块的导入方法,除了导入一个模块名之外,Python还可以导入指定的目录路径,Python代码的目录就称为包,这类对目录的导入就称为包导入.实际上,包导入是把计算机上的目录变成另一个Python的命名空间,而属性则对应目录中所包含的子目录和模块文件. 包导入对于组织大型系统内的文件会很方便,而且可以简化模块搜索路径的设置,本书第六章"用户自定义GUI应用程序开发指南"中采用了大量的包导入实例. [语法]包导入的语法与模块导入类似,区别在于包导入时需要指定文件

《Abaqus GUI程序开发指南(Python语言)》——2.2 Python与Abaqus

2.2 Python与Abaqus Abaqus作为国际公认的大型通用非线性有限元软件之一,被广泛应用于机械制造.航空航天.汽车交通.船舶.土木工程.能源矿产.医疗卫生以及日用家电等诸多领域.随着Abaqus应用领域及用户的不断拓展,软件自身提供的功能往往不能满足一些特殊的使用要求.为了进一步满足不同用户在软件使用过程中不断产生的新需求,Abaqus软件为用户提供了开放的二次开发接口,包括基于FORTRAN语言的用户子程序接口和基于Python语言的脚本接口.前者主要是方便用户开发自定义材料模型

《Abaqus GUI程序开发指南(Python语言)》——1.2 Abaqus图形界面程序开发的意义

1.2 Abaqus图形界面程序开发的意义 通过1.1节介绍的简单实例,相信大家对Abaqus软件的图形界面程序开发有了一定的认识.传统的采用手动建模过程中,需要反复切换模块.点击按钮.输入数据等,过程繁琐,耗时费力.通过对商业有限元软件的前后处理模块进行二次开发,可以有效提高前后处理效率,节省建模及数据处理时间.采用Python语言对Abaqus进行二次开发具有以下优点. (1)可以通过图形交互界面,实现参数的统一管理. (2)可以避免大量重复性的建模工作,避免人为建模错误.对于具有典型共有特

《Abaqus GUI程序开发指南(Python语言)》——2.4 内置对象类型

2.4 内置对象类型 Python语言中提供了强大的对象类型作为语言的组成部分,内置对象使得程序编写更加容易,并且内置对象往往比自己定制的数据结构更有效率.Python语言中主要有如表2.1所示几类对象类型. 2.4.1 数字Python语言中的数字类型包括整型.浮点型.复数型等,与一般的C.C++等语言没有太大的区别,以下是几类数字类型的内置对象定义方法. [实例2.4]定义数字类型 >>>a=5+5 #定义整形数据 >>>a 10 >>> b=5*

《Abaqus GUI程序开发指南(Python语言)》——2.10 模块

2.10 模块 一般来说,当退出Python编译器之后再次重新进入时,之前创建的一切变量或者函数就全部丢失了.如果希望长时间地保存程序,方便随时调用,就需要用到模块的概念. 模块一般是以.py为后缀的文件,文件包括函数定义和声明,文件名即为模块名.例如将下列代码存储到一个名为Add.py的文件中即创建了一个名为Add的模块. [实例2.36]模块的定义 def add(x,y): add=x+y print 'the sum of x and y is %f.' % add print 'x i

《Abaqus GUI程序开发指南(Python语言)》——2.6 运算符

2.6 运算符 运算符是处理数字的最基本工具,在编写程序时经常会遇到各类运算符.与其他编程语言类似,Python中主要包含算术运算符.关系运算符以及逻辑运算符等. 2.6.1 算术运算符 算术运算符包括加.减.乘.除.幂运算,整除运算以及余数运算等,具体如表2.3所示. 需要注意的是,//运算符是floor除法,它把结果向下截断到它的下层,即比真实结果小却又最接近真实结果的整数.其直接效果是向下舍入,并不是严格地截断(trunc),并且对负数也有效,读者在使用floor除法时应注意其与截断的区别

《Abaqus GUI程序开发指南(Python语言)》——2.8 while和for循环

2.8 while和for循环 循环语句指的是重复执行的代码块,由循环体和循环终止语句组成.重复执行的语句称为循环体,循环体执行的次数由循环终止语句来控制.在Python语言中,一般采用while循环和for循环两种方式. **2.8.1 while循环**while循环语句是Python语言中最通用的迭代结构,只要while语句的顶端测试一直是真值,那么就会一直执行循环体内的代码块,每次循环之后,控制权会返回到开头部分,直到测试为假时,控制权才会传给while块之后的语句. while循环的一