python 写入文件并保存_python:将输入写入文件并保存i

不确定您的weight_list到底是什么样子,或者您是为某个特定的训练计划还是针对一般情况,但是您可能希望使用类似CSV(逗号分隔值)格式来保存信息并能够轻松地绘制它(对于N种不同训练类型的一般情况)。我的意思如下:$ ./record-workout saved-workouts.csv

记录表在哪里

^{pr2}$

并且saved-workouts.csv是我们要保存到的文件

然后,稍微修改一下脚本:# even though this is a small example, it's usually preferred

# to import the modules from a readability standpoint [1]

import sys

# we'll import time so we can get todays date, so you can record

# when you worked out

import time

# you'll likely want to check that the user provided arguments

if len(sys.argv) != 2:

# we'll print a nice message that will show the user

# how to use the script

print "usage: {} ".format(sys.argv[0])

# after printing the message, we'll exit with an error-code

# because we can't do anything else!

sys.exit(1)

# `sys.argv[1]` should contain the first command line argument,

# which in this case is the name of the data file we want

# to write to (and subsequently read from when we're plotting)

# therefore, the type of `f` below is `str` (string).

#

# Note: I changed the name from `file` to `filename` because although `file`

# is not a reserved word, it's the name of a built-in type (and constructor) [2]

filename = sys.argv[1]

# in Python, it's recommended to use a `with` statement

# to safely open a file. [3]

#

# Also, note that we're using 'a' as the mode with which

# to open the file, which means `append` rather than `write`.

# `write` will overwrite the file when we call `f.write()`, but

# in this case we want to `append`.

#

# Lastly, note that `target_file` is the name of the file object,

# which is the object to which you'll be able to read or write or append.

with open(filename, 'a') as target_file:

# you'd probably want the csv-form to look like

#

# benchpress,2,5,225

#

# so for the general case, let's build this up

workout = raw_input("Enter what workout you did today: ")

num_sets = raw_input("Enter the number of sets you did today")

num_reps = raw_input("Enter the number of reps per set you did today")

weight = raw_input("Enter the weight you lifted today")

# you might also want to record the day and time you worked out [4]

todays_date = time.strftime("%Y-%m-%d %H:%M:%S")

# this says "join each element in the passed-in tuple/list

# as a string separated by a comma"

workout_entry = ','.join((workout, num_sets, num_reps, weight, todays_date))

# you don't need to save all the entries to a list,

# you can simply write the workout out to the file obj `target_file`

target_file.write(workout_entry)

# Note: I removed the `target_file.close()` because the file closes when the

# program reaches the end of the `with` statement.

因此saved-workouts.csv的结构是:workout,sets,reps,weight

benchpress,2,5,225

这也允许您在准备绘制数据时轻松地解析它。在这种情况下,您可能希望另一个脚本(或上述脚本中的另一个函数)使用如下方法读取文件:import sys

# since we're reading the csv file, we'll want to use the `csv` module

# to help us parse it

import csv

if len(sys.argv) < 2:

print "usage: {} ".format(sys.argv[0])

sys.exit(1)

filename = sys.argv[1]

# now that we're reading the file, we'll use `r`

with open(filename, 'r') as data_file:

# to use `csv`, you need to create a csv-reader object by

# passing in the `data_file` `file` object

reader = csv.reader(data_file)

# now reader contains a parsed iterable version of the file

for row in reader:

# here's where you'll want to investigate different plotting

# libraries and such, where you'll be accessing the various

# points in each line as follows:

workout_name = row[0]

num_sets = row[1]

num_reps = row[2]

weight = row[3]

workout_time = row[4]

# optionally, if your csv file contains headers (as in the example

# above), you can access fields in each row using:

#

# row['weight'] or row['workout'], etc.

资料来源:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值