我想在我的python文件中写一个带括号的列表

时间:2018-08-14 18:46:47

标签: python list file

我想生成一个日志文件,其中我必须为大约50个输入文件打印两个列表。因此,日志文件中报告了大约100个列表。我尝试使用pickle.dump,但在每个值的开头添加了一些奇怪的字符。而且,它会将每个值写在不同的行中,并且也没有显示括号。

这是测试代码的示例输出。

import pickle
x=[1,2,3,4]
fp=open('log.csv','w')
pickle.dump(x,fp)
fp.close()

输出:

enter image description here

我希望我的日志文件报告: 清单1是:[1,2,3,4]

3 个答案:

答案 0 :(得分:0)

Property 'jsdom' does not exist on type 'Global'.用于以可以用来重新创建原始对象的形式存储对象。如果您要做的只是创建一条日志消息,那么内置的pickle方法就足够了。

__str__

答案 1 :(得分:0)

如果您希望您的日志文件可读,则使用“实现二进制协议”的pickle.dump(x,fp) 来以错误的方式进行处理-即它不可读。

要获得所需的内容,请替换行

fp.write(' list 1 is: '
fp.write(str(x))

使用

#include <iostream>

using namespace std;

int main() {
    int table[10][10];
    for(int i = 1; i <= 10; i++) {
        for(int j = 1; j <= 10; j++) {
            table[i][j] = (j * i);
            cout << table[i][j] << "\t"<< flush;
        }
        cout << endl;
    }
    return 0;
}

这需要对其余代码进行最少的更改。但是,良好的做法会将您的代码更改为更好的样式。

答案 2 :(得分:0)

Python的pickle用于序列化对象,这基本上是一种将对象及其层次结构存储在计算机上以供以后使用的方式。

如果您的目标是将数据写入 csv ,则读取 csv 文件并输出您在其中读取的内容,然后在下面阅读。

写入CSV文件 see here for a great tutorial if you need more info

import csv
list = [1,2,3,4]
myFile = open('yourFile.csv', 'w')
writer = csv.writer(myFile)
writer.writerow(list)

函数writerow()将可迭代的每个元素(在您的情况下为列表的每个元素)写入一列。您可以遍历每个列表,并以这种方式将其写入自己的行。如果您想一次写入多行,请查看方法writerows()

您的文件在写入时将自动保存。

读取CSV文件

import csv
with open('example.csv', newline='') as File: 
reader = csv.reader(File)
for row in reader:
    print(row)

这将遍历 csv 文件中的所有行,并将其打印到控制台。