这是我的代码,我将输入作为句子并从给定语料库中预测下一个单词。 但是我的问题是我想将.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)
答案 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”