简体   繁体   English

将 2D 列表/数组保存到文本文件并保留所有格式

[英]Saving a 2D List/Array to a text file with all formatting preserved

I am trying to save array of lists to a text file and then read them back to a list with all the original formatting preserved.我正在尝试将列表数组保存到文本文件中,然后将它们读回保留所有原始格式的列表。 The output list 'content' should be exactly the same as the input list 'times'. output 列表“内容”应与输入列表“时间”完全相同。

times = [('7:00 AM', 'F'), ('7:10 AM', 'F'), ('7:20 AM', 'F'), ('7:30 AM', 'F'), ('7:40 AM', 'F'), ('7:50 AM', 'F'), ('8:00 AM', 'F'), ('8:10 AM', 'F'), ('8:20 AM', 'F'), ('8:30 AM', 'F'), ('8:40 AM', 'F'), ('8:50 AM', 'F'), ('9:00 AM', 'F')]

#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
array = np.array(times)
print("array",array)
np.savetxt("C:/Users/micha/source/repos/Times_Array.txt",array,fmt="%s")
content = np.genfromtxt('C:/Users/micha/source/repos/Times_Array.txt',delimiter=",",dtype=None,encoding = 'UTF-8')
print("\ndata.txt content:\n",content)
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 array [['7:00 AM' 'F']
 ['7:10 AM' 'F']
 ['7:20 AM' 'F']
 ['7:30 AM' 'F']
 ['7:40 AM' 'F']
 ['7:50 AM' 'F']
 ['8:00 AM' 'F']
 ['8:10 AM' 'F']
 ['8:20 AM' 'F']
 ['8:30 AM' 'F']
 ['8:40 AM' 'F']
 ['8:50 AM' 'F']
 ['9:00 AM' 'F']]

 data.txt content:
 ['7:00 AM F' '7:10 AM F' '7:20 AM F' '7:30 AM F' '7:40 AM F' '7:50 AM F'
 '8:00 AM F' '8:10 AM F' '8:20 AM F' '8:30 AM F' '8:40 AM F' '8:50 AM F'
 '9:00 AM F']

The output format in the list 'content' is not the same as the input list 'times'.. How do I get input to equal output with the same format?列表“内容”中的 output 格式与输入列表“时间”不同。如何使输入等于具有相同格式的 output?

The list:名单:

In [68]: times = [('7:00 AM', 'F'), ('7:10 AM', 'F'), ('7:20 AM', 'F'), ('7:30 AM', 'F'
    ...: ), ('7:40 AM', 'F'), ('7:50 AM', 'F'), ('8:00 AM', 'F'), ('8:10 AM', 'F'), ('8
    ...: :20 AM', 'F'), ('8:30 AM', 'F'), ('8:40 AM', 'F'), ('8:50 AM', 'F'), ('9:00 AM
    ...: ', 'F')]
    ...: 
In [69]: times
Out[69]: 
[('7:00 AM', 'F'),
 ('7:10 AM', 'F'),
 ('7:20 AM', 'F'),
 ('7:30 AM', 'F'),
 ('7:40 AM', 'F'),
 ('7:50 AM', 'F'),
 ('8:00 AM', 'F'),
 ('8:10 AM', 'F'),
 ('8:20 AM', 'F'),
 ('8:30 AM', 'F'),
 ('8:40 AM', 'F'),
 ('8:50 AM', 'F'),
 ('9:00 AM', 'F')]

The string dtype array from that list:该列表中的字符串 dtype 数组:

In [70]: arr = np.array(times)
In [71]: arr
Out[71]: 
array([['7:00 AM', 'F'],
       ['7:10 AM', 'F'],
       ['7:20 AM', 'F'],
       ['7:30 AM', 'F'],
       ['7:40 AM', 'F'],
       ['7:50 AM', 'F'],
       ['8:00 AM', 'F'],
       ['8:10 AM', 'F'],
       ['8:20 AM', 'F'],
       ['8:30 AM', 'F'],
       ['8:40 AM', 'F'],
       ['8:50 AM', 'F'],
       ['9:00 AM', 'F']], dtype='<U7')

writing the file:写文件:

In [72]: np.savetxt('test.txt', arr, fmt='%s', delimiter=',')
In [73]: cat test.txt
7:00 AM,F
7:10 AM,F
7:20 AM,F
7:30 AM,F
7:40 AM,F
7:50 AM,F
8:00 AM,F
8:10 AM,F
8:20 AM,F
8:30 AM,F
8:40 AM,F
8:50 AM,F
9:00 AM,F

Reloading the csv - same delimiter:重新加载 csv - 相同的分隔符:

In [75]: data = np.genfromtxt('test.txt', delimiter=',', dtype='str')
In [76]: data
Out[76]: 
array([['7:00 AM', 'F'],
       ['7:10 AM', 'F'],
       ['7:20 AM', 'F'],
       ['7:30 AM', 'F'],
       ['7:40 AM', 'F'],
       ['7:50 AM', 'F'],
       ['8:00 AM', 'F'],
       ['8:10 AM', 'F'],
       ['8:20 AM', 'F'],
       ['8:30 AM', 'F'],
       ['8:40 AM', 'F'],
       ['8:50 AM', 'F'],
       ['9:00 AM', 'F']], dtype='<U7')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM