将数字写入文件python

我试图提取我的数据点(x,y)元组的所有元素,并将它们放入x值和y列表的列表,并将它们转移到Excel电子表格中的两列。 看来把文件写入文件是相当困难的。 任何人都可以解释这个问题吗? 当前状态:

xlist=[list[i][0] for i in range(len(list))] ylist=[list[i][1] for i in range(len(list))] fob=open('c:/test/a.txt','w') fob.write(xlist[i] for i in range(len(xlist)) 

我想在记事本中写下一列数字,以便我可以直接突出显示并复制到电子表格中。 以下是我的数据。

 list = [(0.496, 12.49), (0.531, 12.40), (0.578, 12.18), (0.615, 11.96), (0.657, 11.75), (0.731, 11.28), (0.785, 10.85), (0.812, 10.61), (0.883, 9.92), (0.930, 9.40), (0.979, 8.77), (1.026, 8.10), (1.081, 7.23), (1.134, 6.33), (1.189, 5.39), (1.220, 4.85), (1.273, 3.92), (1.332, 2.91), (1.364, 2.55), (1.418, 2.16), (1.467, 1.65), (1.523, 1.17), (1.569, 0.82), (1.626, 0.47), (1.678, 0.21), (1.723, 0.01), (1.776, 0.19), (1.814, 0.28), (1.869, 0.36), (1.933, 0.36), (1.972, 0.31), (2.021, 0.18), (2.081, 0.13), (2.129, 0.46), (2.169, 0.79), (2.219, 1.24), (2.280, 1.84), (2.306, 2.11), (2.358, 2.67), (2.414, 3.37), (2.471, 4.05), (2.505, 4.51), (2.562, 5.22), (2.613, 5.84), (2.652, 6.31), (2.712, 7.01), (2.758, 7.52), (2.802, 7.99), (2.869, 8.63), (2.930, 9.16), (2.971, 9.57), (3.043, 10.35), (3.078, 10.69), (3.119, 11.00), (3.174, 11.26), (3.217, 11.40), (3.261, 11.53), (3.307, 11.55), (3.371, 11.51), (3.432, 11.40), (3.479, 11.26), (3.507, 11.20), (3.557, 11.00), (3.623, 10.55), (3.663, 10.28), (3.729, 9.79), (3.768, 9.57), (3.825, 9.24), (3.880, 8.85), (3.944, 8.41), (3.969, 8.04), (4.014, 7.55), (4.086, 6.67), (4.105, 6.37), (4.166, 5.50), (4.212, 4.88), (4.266, 4.20), (4.311, 3.69), (4.364, 3.06), (4.401, 2.65), (4.453, 2.09), (4.497, 1.68), (4.556, 1.18), (4.602, 0.85), (4.644, 0.57), (4.695, 0.29), (4.754, 0.04), (4.799, 0.11), (4.847, 0.17), (4.918, 0.11), (4.959, 0.04), (4.992, 0.19), (5.063, 0.64), (5.098, 0.90), (5.157, 1.40), (5.201, 1.79), (5.245, 2.20), (5.291, 2.65), (5.326, 3.00), (5.387, 3.65), (5.420, 4.02), (5.469, 4.62), (5.538, 5.44), (5.579, 5.96), (5.629, 6.57), (5.674, 7.14), (5.724, 7.73), (5.798, 8.60), (5.823, 8.88), (5.888, 9.62), (5.919, 9.94), (5.963, 10.41), (6.009, 10.85), (6.050, 11.22), (6.115, 11.71), (6.153, 11.99), (6.222, 12.39), (6.263, 12.61), (6.302, 12.77), (6.377, 12.99), (6.414, 13.03), (6.454, 13.02), (6.522, 12.89), (6.558, 12.74), (6.626, 12.41), (6.677, 12.05), (6.729, 11.64), (6.791, 11.00), (6.832, 10.58), (6.887, 9.92), (6.949, 9.13), (6.996, 8.48), (7.028, 8.09), (7.094, 7.13), (7.123, 6.70), (7.161, 6.16), (7.213, 5.35), (7.250, 4.81), (7.332, 3.61), (7.382, 2.93), (7.420, 2.45), (7.474, 1.88), (7.514, 1.40), (7.576, 0.71), (7.600, 0.50), (7.662, 0.12), (7.725, 0.16), (7.768, 0.26), (7.810, 0.30), (7.858, 0.26), (7.904, 0.18), (7.980, 0.10), (8.021, 0.29), (8.078, 0.65), (8.133, 1.06), (8.165, 1.33), (8.218, 1.83), (8.267, 2.31), (8.321, 2.87), (8.355, 3.27), (8.413, 3.91), (8.473, 4.61), (8.519, 5.22), (8.553, 5.65), (8.643, 6.74), (8.678, 7.23), (8.734, 7.94), (8.760, 8.27), (8.803, 8.81), (8.851, 9.35), (8.905, 9.94), (8.961, 10.45), (9.009, 10.92), (9.053, 11.34), (9.106, 11.75), (9.166, 12.14), (9.228, 12.48), (9.292, 12.71), (9.340, 12.86), (9.384, 13.01), (9.412, 13.05), (9.452, 13.03), (9.472, 13.00)] 

干杯

将其导出为CSV文件。 你的用例非常简单,你应该可以用标准的Python来完成。

 with open('output.csv', 'w') as f: for x, y in l: f.write("%s, %s\n" % (x, y)) 

注意:list是python中的保留字,你不应该使用它。

使用openpyxl从Python编写.xslx文件:

 import openpyxl my_list = [(0.496, 12.49), (0.531, 12.40), (0.578, 12.18), (0.615, 11.96), (0.657, 11.75), (0.731, 11.28), (0.785, 10.85), (0.812, 10.61), (0.883, 9.92), (0.930, 9.40), (0.979, 8.77), (1.026, 8.10), (1.081, 7.23), (1.134, 6.33), (1.189, 5.39), (1.220, 4.85), (1.273, 3.92), (1.332, 2.91), (1.364, 2.55), (1.418, 2.16), (1.467, 1.65), (1.523, 1.17), (1.569, 0.82), (1.626, 0.47), (1.678, 0.21), (1.723, 0.01), (1.776, 0.19), (1.814, 0.28), (1.869, 0.36), (1.933, 0.36), (1.972, 0.31), (2.021, 0.18), (2.081, 0.13), (2.129, 0.46), (2.169, 0.79), (2.219, 1.24), (2.280, 1.84), (2.306, 2.11), (2.358, 2.67), (2.414, 3.37), (2.471, 4.05), (2.505, 4.51), (2.562, 5.22), (2.613, 5.84), (2.652, 6.31), (2.712, 7.01), (2.758, 7.52), (2.802, 7.99), (2.869, 8.63), (2.930, 9.16), (2.971, 9.57), (3.043, 10.35), (3.078, 10.69), (3.119, 11.00), (3.174, 11.26), (3.217, 11.40), (3.261, 11.53), (3.307, 11.55), (3.371, 11.51), (3.432, 11.40), (3.479, 11.26), (3.507, 11.20), (3.557, 11.00), (3.623, 10.55), (3.663, 10.28), (3.729, 9.79), (3.768, 9.57), (3.825, 9.24), (3.880, 8.85), (3.944, 8.41), (3.969, 8.04), (4.014, 7.55), (4.086, 6.67), (4.105, 6.37), (4.166, 5.50), (4.212, 4.88), (4.266, 4.20), (4.311, 3.69), (4.364, 3.06), (4.401, 2.65), (4.453, 2.09), (4.497, 1.68), (4.556, 1.18), (4.602, 0.85), (4.644, 0.57), (4.695, 0.29), (4.754, 0.04), (4.799, 0.11), (4.847, 0.17), (4.918, 0.11), (4.959, 0.04), (4.992, 0.19), (5.063, 0.64), (5.098, 0.90), (5.157, 1.40), (5.201, 1.79), (5.245, 2.20), (5.291, 2.65), (5.326, 3.00), (5.387, 3.65), (5.420, 4.02), (5.469, 4.62), (5.538, 5.44), (5.579, 5.96), (5.629, 6.57), (5.674, 7.14), (5.724, 7.73), (5.798, 8.60), (5.823, 8.88), (5.888, 9.62), (5.919, 9.94), (5.963, 10.41), (6.009, 10.85), (6.050, 11.22), (6.115, 11.71), (6.153, 11.99), (6.222, 12.39), (6.263, 12.61), (6.302, 12.77), (6.377, 12.99), (6.414, 13.03), (6.454, 13.02), (6.522, 12.89), (6.558, 12.74), (6.626, 12.41), (6.677, 12.05), (6.729, 11.64), (6.791, 11.00), (6.832, 10.58), (6.887, 9.92), (6.949, 9.13), (6.996, 8.48), (7.028, 8.09), (7.094, 7.13), (7.123, 6.70), (7.161, 6.16), (7.213, 5.35), (7.250, 4.81), (7.332, 3.61), (7.382, 2.93), (7.420, 2.45), (7.474, 1.88), (7.514, 1.40), (7.576, 0.71), (7.600, 0.50), (7.662, 0.12), (7.725, 0.16), (7.768, 0.26), (7.810, 0.30), (7.858, 0.26), (7.904, 0.18), (7.980, 0.10), (8.021, 0.29), (8.078, 0.65), (8.133, 1.06), (8.165, 1.33), (8.218, 1.83), (8.267, 2.31), (8.321, 2.87), (8.355, 3.27), (8.413, 3.91), (8.473, 4.61), (8.519, 5.22), (8.553, 5.65), (8.643, 6.74), (8.678, 7.23), (8.734, 7.94), (8.760, 8.27), (8.803, 8.81), (8.851, 9.35), (8.905, 9.94), (8.961, 10.45), (9.009, 10.92), (9.053, 11.34), (9.106, 11.75), (9.166, 12.14), (9.228, 12.48), (9.292, 12.71), (9.340, 12.86), (9.384, 13.01), (9.412, 13.05), (9.452, 13.03), (9.472, 13.00)] book = openpyxl.Workbook() sheet = book.active for i, value in enumerate(my_list): sheet.cell(row=i+1, column=1).value = value[0] sheet.cell(row=i+1, column=2).value = value[1] book.save('test.xlsx') 

当你有内存中的数字或对象等数据时,将这些数据直接转储到磁盘通常是不正确的,你需要序列化它。

序列化最简单的方法是自动调用“序列化”方法__str__ 。 这个序列化方法的问题是,并不总是很容易反序列化。

当你有一个数据结构,就像你描述的matrix一样,你需要一个序列化的方法来保存结构并允许在内存中重build它。 在这种情况下,您可以使用CSV(通过csv模块),JSON(通过json模块)或许多其他。

使用CSV。