Labview 打开数据记录文件与写入数据记录文件不能连接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Labview 打开数据记录文件与写入数据记录文件不能连接相关的知识,希望对你有一定的参考价值。
断线提示是数据源是数据记录文件引用,数据接收端是数据记录文件引用。两边一模一样,但是就是不符
断线提示:数据源为数据记录文件引用,数据接收端为数据记录文件引用,数据类型不匹配
1. 因为这是一组很通用的多态控件,所以需要指定文件数据的类型,就是“打开”控件顶上那个“记录类型”端口。
2.你要求的功能其实可以用其他组的控件,操作更方便。比如二进制文件,文本文件。
3.如果记录的数据量很大,写入频繁,可以考虑用tdms文件。
下面有图
2.你要求的功能其实可以用其他组的控件,操作更方便。比如二进制文件,文本文件。(推荐文本文件)
3.如果你要记录的数据量很大,写入很频繁,你可以考虑用tdms文件。使用方法看看自带例程就ok啦~
:) 参考技术B 也许有略微差别,你把鼠标移到线上,看看提出 说明两个数据类型分别是什么?
python爬虫学习记录数据存储——文件存储a
一、TXT文本存储
1、基本思路
先用request方法提取,再用python提供的open方法打开file,获取一个文件操作对象,这里赋值为 file,接着利用 file 对象的 write 方法将提取的内容写入文件,最后调用 close 方法将其关闭,这样抓取的内容即可成功写入文本中了。
2、打开方式
- r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
- rb:以二进制只读方式打开一个文件。文件指针将会放在文件的开头。
- r+:以读写方式打开一个文件。文件指针将会放在文件的开头。
- rb+:以二进制读写方式打开一个文件。文件指针将会放在文件的开头。
- w:以写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
- wb:以二进制写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
- w+:以读写方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
- wb+:以二进制读写格式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
- a:以追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件来写入。
- ab:以二进制追加方式打开一个文件。如果该文件已存在,则文件指针将会放在文件结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件来写入。
- a+:以读写方式打开一个文件。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,则创建新文件来读写。
- ab+:以二进制追加方式打开一个文件。如果该文件已存在,则文件指针将会放在文件结尾。如果该文件不存在,则创建新文件用于读写。
3、简化写法
with as。在 with 控制块结束时,文件会自动关闭,所以就不需要再调用 close 方法了
with open('explore.txt', 'a', encoding='utf-8') as file:
file.write('\\n'.join([question, author, answer]))
file.write('\\n' + '=' * 50 + '\\n')
二、json文件
1、读取json
调用 JSON 库的 loads 方法将 JSON 文本字符串转为 JSON 对象,可以通过 dumps() 方法将 JSON 对象转为文本字符串。
import json
str = '''
[{
"name": "Bob",
"gender": "male",
"birthday": "1992-10-18"
}, {
"name": "Selina",
"gender": "female",
"birthday": "1995-10-18"
}]
'''
data = json.loads(str)
print(data)
[{'name': 'Bob', 'gender': 'male', 'birthday': '1992-10-18'}, {'name': 'Selina', 'gender': 'female', 'birthday': '1995-10-18'}]
loads将字符串转化成json对象。
可以使用data[0]['name']或者data[0].get('name')来得到Bob的结果。
通过中括号加 0 索引,可以得到第一个字典元素,然后再调用其键名即可得到相应的键值。获取键值时有两种方式,一种是中括号加键名,另一种是通过 get 方法传入键名。这里推荐使用 get 方法,这样如果键名不存在,则不会报错,会返回 None。另外,get 方法还可以传入第二个参数(即默认值)
如果从 JSON 文本中读取内容,例如这里有一个 data.json 文本文件,其内容是刚才定义的 JSON 字符串,我们可以先将文本文件内容读出,然后再利用 loads 方法转化
import json
with open('data.json','r') as file:
str = file.read()
data = json.loads(str)
print(data)
[{'name': 'Bob', 'gender': 'male', 'birthday': '1992-10-18'}, {'name': 'Selina', 'gender': 'female', 'birthday': '1995-10-18'}]
2、输出json
调用dumps方法将json对象转化为字符串
import json
data = [{
"name": "Bob",
"gender": "male",
"birthday": "1992-10-18"
}]
with open ('data.json','w') as file:
file.write(json.dumps(data))
如果想保存 JSON 的格式,可以再加一个参数 indent,代表缩进字符个数
file.write(json.dumps(data,indent=2))
如果包含中文字符,输出的文件中会将中文转换成unicode编码。这时需要指定参数ensure_ascii为false,另外还要规定文件输出的编码
with open('data.json', 'w', encoding='utf-8') as file:
file.write(json.dumps(data, indent=2, ensure_ascii=False))
三、CSV文件存储
号分隔值或字符分隔值,其文件以纯文本形式存储表格数据。该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分隔。每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。不过所有记录都有完全相同的字段序列,相当于一个结构化表的纯文本形式。它比 Excel 文件更加简洁,XLS 文本是电子表格,它包含了文本、数值、公式和格式等内容,而 CSV 中不包含这些内容,就是特定字符分隔的纯文本,结构简单清晰。
1、写入
import csv
with open ('data.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['id','name','age'])
writer.writerow(['10001', 'Mike', '20'])
writer.writerow(['10002', 'Helen', '19'])
写入的文本默认以逗号分隔,调用一次 writerow 方法即可写入一行数据
如果想修改列与列之间的分隔符,可以传入 delimiter 参数
writer = csv.writer(csvfile, delimiter=' ')
也可以调用 writerows 方法同时写入多行,此时参数就需要为二维列表 ,结果一样
writer.writerows([['10001', 'Mike', '20'],['10002', 'Helen', '19']])
cvs中提供字典格式。先定义 3 个字段,用 fieldnames 表示,然后将其传给 DictWriter 来初始化一个字典写入对象,接着可以调用 writeheader 方法先写入头信息,然后再调用 writerow 方法传入相应字典即可。
import csv
fieldnames = ['id','name','age']
with open ('data.csv', 'w') as csvfile:
writer = csv.DictWriter(csvfile,fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'id':'10001','name':'Bob','age':'22'})
writer.writerow({'id': '10002', 'name': 'Mike', 'age': '22'})
2、读取
使用csv库读取。
import csv
fieldnames = ['id','name','age']
with open ('data.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print(row)
以上是关于Labview 打开数据记录文件与写入数据记录文件不能连接的主要内容,如果未能解决你的问题,请参考以下文章
LabVIEW - 获取当前VI所在文件夹路径电子表格记录数据