如何将数据输入csv?

时间:2017-10-28 09:53:53

标签: python csv

我有一个项目,我想将数据输入到csv。

如果数据小于500,我希望数据保存在第一列中;如果值大于500,我希望第二列保存另一个数据。

[300,600]

我期望的结果是:

  

输入:600

     

输入:300

结果应为<EditText android:id="@+id/articlename" android:layout_width="278dp" android:layout_height="75dp" android:layout_marginStart="16dp" android:layout_marginTop="4dp" android:clickable="false" android:cursorVisible="false" android:ems="10" android:focusable="false" android:inputType="textMultiLine" android:text="Name of article" android:textColor="#FFF" android:textSize="22dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button" android:layout_width="90dp" android:layout_height="90dp" android:layout_marginStart="16dp" android:layout_marginTop="108dp" android:background="@drawable/circle" android:onClick="onClicknews" android:text="news\n(click me)" android:textColor="#FFFF" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />

如果再次重新输入,则数据应保存到第二行。

1 个答案:

答案 0 :(得分:0)

错误在于您将raw_input返回的字符串与整数进行比较。在Python 3中会引发TypeError,而Python 2很高兴继续使用不正确的输入。

在将输入传递给try:...except ValueError:函数之前,您可以将输入转换为writeToFile块中的int。

由于您需要两个输入,因此必须调用raw_input两次,然后将值传递给write函数。我写的程序类似于这个解决方案:

import csv


def writeToFile(writer, x, y):
    a = 0
    b = 0
    if x > 500:
        b = x
        a = y
    elif x < 500:
        a = x
        b = y
    g = [a, b]
    writer.writerow(g)


with open('temp.csv', 'ab') as f:
    writer = csv.writer(f)
    while True:
        x = raw_input('>>> Input: ')
        y = raw_input('>>> Input: ')
        try:
            x = int(x)
            y = int(y)
        except ValueError:
            print 'Invalid input: {}, {}'.format(x, y)
        else:  # No error.
            writeToFile(writer, x, y)