Python代码可根据用户输入读取CSV文件

时间:2019-05-28 12:23:25

标签: python python-3.x csv

我需要根据用户输入导入和读取两个单独的CSV文件。我们将两个文件称为test1.csv和test2.csv。如果需要test1或test2,将提示用户输入。

输入所需的CSV文件后,系统将提示用户其他一些问题,以选择所需的数据行。我的CSV文件数据如下:

     Column A, Column B, Column C, Column D`
     Row 1, 1, 2, 3
     Row 2, 4, 5, 6

如果用户输入第2行,我想返回列B,C和D作为结果。

我是python的新手,不确定根据用户输入来打印正确行的代码。我也不确定如何根据输入选择要提取哪个CSV文件。

作为一种变通方法,我在代码内的if / else语句中写出了所有CSV数据,但希望将数据保留为CSV格式。

    'vehicle = input('Enter CSV File:')
         if vehicle == 'Test2':
         print ("Row Titles")
         print ("1.Row 1")
         print ("2.Row 2")
         choice = input('Row #:')
         Column B= '1'if choice == '1' else '2' if choice == '2' else 

0'              列C ='2'如果选择=='1'否则为'5'如果选择=='2'否则为'0'              列D ='3',如果choice =='1'否则为'6',如果choice =='2'否则为'0'

        print (column b+ column c+ column D)

elif车辆==“ Test2”:

上面的重复代码以及CSV Test2文件的选项

否则:打印(“无效输入”)'

2 个答案:

答案 0 :(得分:0)

尝试--

import pandas as pd
file_name     = input("Enter file name   : ")
read_csv_file = pd.read_csv(file_name+'.csv')
column_number_0 = input("1st column number : ")
column_number_0 = int(column_number_0)
if column_number_0 < 0 :
    print('Invalid column number !!!!!!')
    pass
else:
    row_selection = read_csv_file[read_csv_file.columns[column_number_0:]]
    print(row_selection)

答案 1 :(得分:0)

就选择csv而言,只需将其作为提示并将其放置在文件字符串中即可。

    private void initialzeLogic(){
          s = FileUtil.readFile(FileUtil.getExternalStorageDir().concat("/testfile.txt"));
          String[] lines = s.split(System.getProperty("line.separator"));
          file.add(lines[0]);
          file.add(lines[1]);
          etc...
          listview1.setAdaptor(new ArrayAdaptor<String>getBaseContext(), 
          android.R.layout.simple_list_item1, file));
          ((BaseAdaptor)listview1.getAdaptor()).notifyDataSetChanged();
    }


您需要将其导入为pandas数据框,以便您轻松调用行和列。

fileinput = str(input("Which file do you want?"))
if not ".csv" in fileinput:
  fileinput += ".csv"

然后,您可以使用iloc返回数据框中的行或列。

import pandas as pd 
data = pd.read_csv(fileinput)