python - Python 脚本无法识别使用中的文件
问题描述
总体思路是识别输入命令文件的存在,使用存储的命令对其中存储信息的文本文件进行操作,并根据所选记录的数量进行输出。
然而,代码始终在 if 语句后的第一次退出处停止。我对这个有点迷茫。有任何想法吗?
import sys
import random
import shlex
#parameter check
if len(sys.argv) != 4:
print("Usage: ./filemaker <INPUTCOMMANDFILE> <OUTPUTFILE> <RECORDCOUNT>")
exit(1)
#store parameters in usable variables
filemaker = sys.argv[0]
inputFile = sys.argv[1]
outputfile = sys.argv[2]
recordcount = sys.argv[3]
try:
recordcount = int(recordcount)
except:
print("Error")
exit(1)
try:
inputFile =open(inputFile, 'r')
except:
print("Error with opening input file")
exit(1)
try:
outputFile = open(outputfile, 'w')
except:
print("Error with opening output file")
exit(1)
#slurping commands into a commands list
cmdList = inputFile.readlines()
header = shlex.split(cmdList[0])
#declaring dictionary
randomFiles = {}
#conditional statements
if header[0] == "HEADER":
outputFile.write(header[1].decode('string_escape'))
#slurping files into randomFiles
for i in range(len(cmdList)):
cmd = shlex.split(cmdList[i])
if cmd[0] == "FILEWORD":
inFile = open(cmd[2], 'r')
randomFiles[cmd[2]] = inFile.readlines()
inFile.close()
#printing randomFiles
randomData = {}
for i in range(recordcount):
randomData = {}
for c in range(len(cmdList)):
cmd = shlex.split(cmdList[c])
if cmd[0] == "STRING":
outputFile.write(cmd[1].decode('string_escape'))
if cmd[0] == "FILEWORD":
label = cmd[1]
if label in randomData:
print ("Error - key exists")
exit(1)
else:
randWord = randomFiles[cmd[2]][random.randint(0, len(randomFiles[cmd[2]])-1)]
randWord = randWord.rstrip()
randomData[cmd[1]] = randWord
outputFile.write(randomData[cmd[1]])
if cmd[0] == "NUMBER":
label = cmd[1]
minNum = int(cmd[2])
maxNum = int(cmd[3])
if label in randomData:
print ("Error - key exists")
exit(1)
else:
randNum = random.randint(minNum, maxNum)
randomData[cmd[1]] = str(randNum)
outputFile.write(randomData[cmd[1]])
if cmd[0] == "REFER":
label = cmd[1]
outputFile.write(randomData[label])
exit(0)
正在运行的命令行只是文件的目录,因此 foldername ./filemaker (脚本的名称)
解决方案
推荐阅读
- asp.net-core - 如何在 .NetCore 上设置 Appsettings.Json 只读
- java - 如何在java中使用响应返回webservice?得到那个文件
- python - 检测彩色图片OpenCV的边缘
- node.js - 在 Node-Postgres 中向 JSON 对象添加新的数组元素
- html - 如何以 html 形式填充特定国家的州和城市?(依赖选项列表)
- android - 如果从 PlayStore 下载 Flutter 应用程序启动时间很慢,但如果通过 USB 安装则立即启动
- python - 刮烂番茄12年奴隶电影
- r - 在 rhandsontable 中插入重复行
- node.js - Paytm 支付网关 startTransaction 响应错误
- javascript - Django 扩展页面未按预期呈现图像