阿赵的MaxScript学习笔记分享八《文件操作》

news2024/9/23 21:18:05

大家好,我是阿赵。继续分享MaxScript学习笔记第八篇
。这一篇主要讲文件操作,包括文件的I/O和导入导出。

1、获得3DsMax指定的一些目录路径

在这里插入图片描述
在这里插入图片描述

如果在电脑上安装了3DsMax软件,那么在文档里面会有一个3dsMax的文件夹,里面有一些3dsMax默认使用的文件夹。
如果我们写脚本时想使用这些路径,可以通过getDir方法,获取一部分的路径。
如果想修改这些路径,可以在3DsMax主工具栏的Customize>Configure Paths里面打开设置面板指定
在这里插入图片描述

2、创建和删除文件

1.创建文件

在这里插入图片描述

使用createFile方法,可以创建文件,如果没有指定路径,只有文件名,文件将会创建在电脑桌面。
在创建的时候,可以指定编码打开,编码有:
#current | #English | #German | #French | #Japanese | #Korean | #Chinese | #utf8 | #utf16LE | #utf16BE
也可以用布尔值指定是否带BOM头
需要注意以下几点:
(1)在创建和写入完之后,一定要调用close,不然这个文件会一直被3DsMax占用着,不能释放,也不能在外部将它删除,直到当前运行的3DsMax程序关闭
(2)如果文件已经存在,使用createFile方法再次创建,会把原来的文件删掉,再创建一个新的,原来的文件内容就没了,所以在createFile之前,一定要使用doesFileExist先判断文件是否存在
(3)使用format to方法可以往文件内逐行写入内容

2.删除文件

在这里插入图片描述

使用deleteFile方法可以删除指定路径上的文件,如果文件存在,可以删除成功,会返回true,否则返回false

3、加密文件

可以对某个文件通过某个key进行加密
encryptFile path1 path2 整型数字的key

4、读取和写入文件

1.读取文件

打开文件有2个方法
openFile和openEncryptedFile
openFile是打开没有加密的文件,具体方式是openFile path
openEncryptedFile是对应通过encryptFile 的方法,具体方式是openEncryptedFile path key
openFile系列方法默认都是只读模式
打开文件后,可以通过readLine来读取一行,或者用readChar 来读取一个字符
这个读取是逐行或者逐字符读取的,一直读取到文件末尾,继续读取就会报错,所以要用eof来判断是否到了文件末尾
在这里插入图片描述

这是一个读取一个文件所有内容的例子

2.写入文件

openFile系列方法可以接mode:<模式>
默认:只读
“a+”/”r+”:可读写,如果用format写入,会添加在原文本后面
“1”:只写,如果用format写入,会添加在原文本后面
“wt”:只写,如果用format写入,会覆盖原有文本
在这里插入图片描述
在这里插入图片描述

5、复制文件

copyFile path1 path2

6、打开文件选择窗口和保存文件窗口

在这里插入图片描述

打开一个窗口,选择需要打开的文件:
getOpenFileName caption:“标题” fileName:“默认文件名” types:“扩展名”
打开一个窗口,选择需要保存的文件:
getSaveFileName caption:“标题” fileName:“默认文件名” types:“扩展名”
其中标题、默认文件名、扩展名都可以不填,返回选择的文件路径

7、文件夹相关操作

1.判断文件夹是否存在

doesDirectoryExist path

2.选择文件夹

dir = getSavePath caption:“请选择” initialDir:(getDir #maxroot)

3.创建文件夹

makedir path

4.获取文件夹内所有文件夹

dir_array = GetDirectories (dir+”/*”)

5.获取文件夹内所有文件

fileArr = getFiles (dir+“*”)

8、导入导出常用格式

1.导入文件

在这里插入图片描述

–导入一个obj格式的文件
path1 = getdir #export+“\box.obj”
“C:\Users\admin\Documents\3dsMax\export\box.obj”
–如果不加任何参数,会打开导入设置窗口,并由用户选择参数
importfile path1
true
如果加了参数,将不会打开导入窗口,直接导入到场景
importfile path1 #noPrompt
true

2.导出文件

在这里插入图片描述

–创建2个box
boxt1 = box()
$Box:Box001 @ [0.000000,0.000000,0.000000]

boxt2 = box()
$Box:Box002 @ [0.000000,0.000000,0.000000]

path1 = getdir #export +“\box1.obj”
“C:\Users\admin\Documents\3dsMax\export\box1.obj”
–不加任何参数的导出,会导出整个场景所有物体为一个文件,并会弹出导出设置窗口
exportFile path1
true
–添加#noPrompt,不会弹出设置窗口,导出整个场景所有物体为一个文件
exportFile path1 #noPrompt
true

–加上selectedOnly:true,只导出当前选择的物体
select boxt1
OK
exportFile path1 #noPrompt selectedOnly:true
true

9、其他操作

1.获得文件大小

GetFileSize path1

2.释放文件内存

free filestream

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《C++ Primer Plus》(第6版)第8章编程练习

《C Primer Plus》&#xff08;第6版&#xff09;第8章编程练习《C Primer Plus》&#xff08;第6版&#xff09;第8章编程练习1. 打印字符串2. CandyBar3. 将string对象的内容转换为大写4. 设置并打印字符串5. max5()6. maxn()7. SumArray()《C Primer Plus》&#xff08;第6版…

【C++】C++11 异常

目录 1. C语言传统的处理错误的方式 2. C异常概念 3. 异常的使用 3.1. 异常的抛出和捕获 3.2. 在函数调用链中异常栈展开匹配原则 3.3. 异常的重新抛出 3.4. 异常安全 3.5. 异常规范 4.自定义异常体系 5. C标准库的异常体系 6. 异常的优缺点 6.1. C异常的优点&…

Spark性能优化二 Shuffle机制分析

&#xff08;一&#xff09; 什么情况下发生shuffle 在MapReduce框架中&#xff0c;Shuffle是连接Map和Reduce之间的桥梁&#xff0c;Map阶段通过shuffle读取数据并输出到对应的Reduce&#xff1b;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中&#xff0c…

Linux 学习整理(使用 iftop 查看网络带宽使用情况 《端口显示》)

一、命令简介 iftop 是实时流量监控工具&#xff0c;可以用来监控网卡的实时流量&#xff08;可以指定网段&#xff09;、反向解析IP、显示端口信息等。 二、命令安装 yum install -y iftop 三、命令相关参数及说明 3.1、相关参数说明 -i&#xff1a;设定监测的网卡&#…

python未来应用前景怎么样

Python近段时间一直涨势迅猛&#xff0c;在各大编程排行榜中崭露头角&#xff0c;得益于它多功能性和简单易上手的特性&#xff0c;让它可以在很多不同的工作中发挥重大作用。 正因如此&#xff0c;目前几乎所有大中型互联网企业都在使用 Python 完成各种各样的工作&#xff0…

CAD中如何将图形对象转换为三维实体?

有些小伙伴在CAD绘制完图纸后&#xff0c;想要将图纸中的某些图形对象转换成三维实体&#xff0c;但却不知道该如何操作&#xff0c;其实很简单&#xff0c;本节CAD绘图教程就和小编一起来了解一下浩辰CAD软件中将符合条件的对象转换为三维实体的相关操作步骤吧&#xff01; 将…

HID协议详解 - Report Descriptor报告描述符构建与解析

USB相关基础知识简述 报告描述符是HID协议里比较复杂的一部分&#xff0c;在理解报告描述符之前&#xff0c;可以对USB协议数据传输的一些基础知识做一些了解&#xff0c;更方便理解后续内容。 报告是USB协议里数据传输&#xff08;Data Transfer&#xff09;的一种&#xff…

Android正确使用资源res文件

观看此文注意首先有的UI改颜色&#xff0c;没用&#xff0c;发现无法更改按钮背景颜色。我的AS下载的是最新版本&#xff0c;Button按钮的背景颜色一直都是亮紫色&#xff0c;无法更改。为什么呢&#xff1f;首先在你的清单文件中看你应用的是哪个主题。我现在用的是这个可能你…

PYthon组合数据类型的简单使用

Python的数据类型有两种&#xff0c;基本数据类型和组合数据类型&#xff0c;组合数据类型在Python的使用中特别重要。 1.组合数据类型的分类&#xff1a; 2.序列类型 序列类型中元素存在顺序关系&#xff0c;可以存在数值相同但位置不同的元素。序列类型支持成员关系操作符&…

计算机编程基础

0与1的世界 计算机是由晶体管和电路板组成的电子设备。 不论是我们微信信息的呈现、图像的储存和数字之间的运算本质上都是0和1的信息。 0、1便可以代表电压的高低、开关的闭合以及电阻的导电和不导电。 0、1表示的数字便是“逢二进一”。计算机的最小的储存单位是位&#…

Java如何String字符串带括号转成List

问题现象 今天在做一个需求&#xff1a;将存入数据库中的数据读到后解析成list遍历分析 数据格式&#xff1a; "[1677660600000, 1677660900000, 1677661200000]" "[5, 4, 4,3,2&#xff0c;0,0]" 我一开始想到的就是使用逗号分割即可 结果变成了这样的…

电容笔和Apple pencil有什么区别?开学季电容笔排行榜

与苹果的 Pencil相比&#xff0c;市面上常见的电容笔在压感上是没有具备重力压感&#xff0c;只具备着一种倾斜压感。对于绘画没有过高要求的话&#xff0c;其实一支普通的平替电容笔&#xff0c;就能为我们解决日常很多问题。它不仅可以用在办公上&#xff0c;也可以用在笔记、…

算法小抄3-理解使用Python容器之列表

引言 首先说一个概念哈,程序算法数据结构,算法是条件语句与循环语句组成的逻辑结构,而数据结构也就是容器. 算法决定数据该如何处理,而容器则决定如何数据如何存储. 不同的语言对容器有不同的实现方式, 但他们的功能都是相似的, 打好容器基础,你就可以在各式各样的语言中来回横…

1.Spring Cloud (Hoxton.SR10) 学习笔记—基础知识

本文目录如下&#xff1a;一、Spring Cloud基础知识什么是微服务架构&#xff1f;服务拆分 有哪些注意事项&#xff1f;什么是分布式集群?分布式的 CAP 原则&#xff1f;组件 - Spring Cloud 哪几个组件比较重要&#xff1f;组件 - 为什么要使用这些组件&#xff1f;组件 - Na…

有关白盒加密

白盒密码技术白皮书 有关白盒的概念 其实白盒黑盒之类概念其实是软件保护方面的概念&#xff0c;在很多方面都有应用&#xff0c;例如 黑盒&#xff1a; 传统的加密技术是默认假定处于黑盒中的&#xff0c;也就是假定攻击者无法获得密钥。具体而言&#xff0c;认为攻击者并…

PMP证书含金量如何,打算以后从事项目管理这一行业的有没有必要考这个证书?

建议考一个&#xff0c;虽然说这一纸证书实际不能带来多少利益&#xff0c;只是一个资格证书&#xff0c;项目管理行业入门证书&#xff0c;但是现在很多企业招聘要求中写了“有 PMP 证书”优先录取&#xff0c;还是考一个有备无患。含金量问题一直备受关注&#xff0c;总结了一…

操作系统(1.1)--引论

目录 一、操作系统的目标和作用 1.操作系统的目标 2.操作系统的作用 2.1 OS作为用户与计算机硬件系统之间的接口 2.2 OS作为计算机系统资源的管理者 2.3 0S实现了对计算机资源的抽象 3. 推动操作系统发展的主要动力 二、操作系统的发展过程 1.无操作系统的计算机系统…

Web3中文|日本元宇宙经济“狂飙”

2月27日&#xff0c;三菱、富士通和其它科技公司发布关于建立“日本元宇宙经济区”的协议&#xff0c;表示将联手从角色扮演游戏的角度创建开放的元宇宙基础设施&#xff0c;以推动日本的Web3战略。据了解&#xff0c;日本一直在努力将Web3技术纳入其国家议程&#xff0c;去年1…

规范哈夫曼编码和Deflate算法

经过常规的哈夫曼编码以后&#xff0c;我们需要将每个符号对应的码字记录下来&#xff0c;比较容易想到的是按照字母序记录每个字母的编码&#xff0c;这样的好处是字母与码字的映射关系被隐式记录&#xff1a; 假设字母表 A{a1,a2,a3,a4,a5}\mathcal{A}\{a_1,a_2,a_3,a_4,a_5\…

基于数据驱动的电动车电池数据分析(一)

基于数据驱动的电动车电池数据分析&#xff08;一&#xff09; 欢迎关注笔者的微信公众号 笔者过去一年多的时间都在国内一家头部新能源企业实习&#xff0c;主要参与一些数据分析和平台研发的工作。在工作中积累了一些数据分析的经验&#xff0c;其中新能源领域比较多的是一…