Labview 打开数据记录文件与写入数据记录文件不能连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Labview 打开数据记录文件与写入数据记录文件不能连接相关的知识,希望对你有一定的参考价值。

断线提示是数据源是数据记录文件引用,数据接收端是数据记录文件引用。两边一模一样,但是就是不符
断线提示:数据源为数据记录文件引用,数据接收端为数据记录文件引用,数据类型不匹配

1. 因为这是一组很通用的多态控件,所以需要指定文件数据的类型,就是“打开”控件顶上那个“记录类型”端口。

2.你要求的功能其实可以用其他组的控件,操作更方便。比如二进制文件,文本文件。

3.如果记录的数据量很大,写入频繁,可以考虑用tdms文件。 

下面有图

参考技术A 1. 因为这是一组很通用的多态控件,所以需要指定文件数据的类型,就是“打开”控件顶上那个“记录类型”端口。
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所在文件夹路径电子表格记录数据

labview 写入电子表格控件,怎么不覆盖已有数据转下一行写入,(地址文件中已经有数据,要保存)

在 TDMS 文件中写入 LabVIEW 数据

C语言将数据写入文件,读取出现二次读取

Labview在循环的每次迭代中将数据写入Excel文件

Python 日志记录与写入文件