如何将.csv文件作为输入

时间:2018-11-06 13:21:06

标签: python-3.x python-2.7 csv

这是我的代码,我将输入作为句子并从给定语料库中预测下一个单词。 但是我的问题是我想将.csv文件作为输入并逐行进行迭代,然后将结果保存到另一个.csv文件中

def takeInput():
    cond = False
    #take input
    while(cond == False):
        sen = input('Enter the string\n')
        sen = removePunctuations(sen)
        temp = sen.split()
        if len(temp) < 3:
            print("Please enter atleast 3 words !")
        else:
            cond = True
            temp = temp[-3:]
    sen = " ".join(temp)
    return sen


    input_sen = takeInput()
    word_choice = chooseWords(input_sen, bi_prob_dict, tri_prob_dict, quad_prob_dict)
    prediction = PredictiontheRes(input_sen, bi_dict, tri_dict, quad_dict, vocab_dict,token_len, word_choice, param)
    print('Word Prediction:',prediction)

1 个答案:

答案 0 :(得分:1)

我将使用参数解析器-下面的示例-并添加-c之类的标记来表示csv文件名,而不是文件本身。

然后,您将不得不编写满足您需求的逻辑。如果存在-c标志,请检查文件是否存在,并使用下面的csv解析器库-并遍历该文件。

argparse *-https://docs.python.org/3/library/argparse.html

csv *-https://docs.python.org/3/library/csv.html

*如果您使用的是Python 2.x,请将链接更改为指向2,或者考虑使用3。

所提供的链接中有许多出色的代码示例。

[edit]-最小示例

import csv
import argparse
import sys

parser = argparse.ArgumentParser('csv')
parser.add_argument('csv')
args = parser.parse_args()

if len( sys.argv ) > 1:
  with open( args.csv ) as csvFile:
    reader = csv.reader(csvFile, delimiter=',')
    with open( args.csv+'output.csv', 'w') as outputCsvFile:
      writer = csv.writer(outputCsvFile, delimiter=',')
      for line in reader:
        processedLine = ['|'] + line + ['|']
        #process line
        writer.writerow( processedLine )

如果您这样调用此脚本: python script.py myCsv.csv 然后,脚本将处理文件“ myCsv.csv”,对其进行处理,然后写入“ myCsv.csvoutput.csv”