当我调试c代码时,我总是使用'gdb a.out< test'重定向标准输入流。但是当谈到pdb
时,我发现它不起作用。在pdb帮助文档中搜索后,我仍然无法找到与此问题相关的内容。
编辑:我发布了我的代码。你可以帮我改变它,以最小的修改从文件中读取。感谢。
cnt = int(raw_input())
paths = []
for cs in range(cnt):
action, path = map(None, (raw_input() + " dumb").split(" ", 1))
if (action == "pwd"):
print "/",
for p in paths:
print p + "/",
print
else:
strs = path.split("/")
for i in range(len(strs)):
p = strs[i]
if (p == ""):
continue
if (p == ".."):
paths.pop()
else:
paths.append(p)
答案 0 :(得分:1)
更改程序以从命令行中指定的文件中读取测试数据。
答案 1 :(得分:0)
确定。我找到了解决方案。所以我只需要评论并取消注释这两行file
,以切换stdin
来自的方式。
import pdb
import sys
file = sys.stdin
#file = open('test', "r")
cnt = int(file.readline())
paths = []
for cs in range(cnt):
inputs = file.readline().split()
action = inputs[0]
if (action == "pwd"):
sb = "/"
for p in paths:
sb = sb + p + "/"
print sb
else:
path = inputs[1]
strs = path.split("/")
for i in range(len(strs)):
p = strs[i]
if (p == ""):
continue
if (i == 1 and strs[0] == ""):
paths = []
paths.append(p)
continue
if (p == ".."):
paths.pop()
else:
paths.append(p)
答案 2 :(得分:0)
作为一个丑陋的临时黑客,你可以重新定义raw_input()
(Python 2)或input()
(Python 3)来读取这样的文件(对于Python 2,用{{1替换input
}})
raw_input