如何将文件读入我的拼图解算器?
我正在尝试将一个数独谜题读入我的数独解算器程序。该文件的名称是'puzzle1.py'
,但由于某些原因,此代码不起作用。有人可以帮我吗?如何将文件读入我的拼图解算器?
def read_sudoku(file): stream = open(file)
data = stream.readlines()
stream.close()
return eval("".join(data))
def main():
print ('File name: ')
file = input()
read_sudoku()
main()
回答:
使用open("filename", <Mode>)
<Mode>
:
'r'
- 阅读;'w'
- 写;'a'
- 追加:将新数据添加到文件末尾;'r+'
- 两种读写操作。
例子:
open(file, "r")
回答:
- 与
read_sudoku(file)
更换read_sudoku()
- 替换
stream = open(file)
与stream = open(file, 'r')
(您必须指定文件的读取模式(r
,w
,a
,r+
)等,在这种情况下,读= r
)
- 将在根目录下的文件,你的项目或将完整目录包含到文件中。
回答:
您可能有错误,因为read_sudoku
需要一个参数,并且您没有传递任何参数。
图片的标题说明:
我也建议你使用
with
语句来打开文件。除非这是一个非常奇怪的数独,你不需要在这里使用
eval
。eval
所做的是将字符串作为Python代码执行,这几乎总是一个坏主意。另外一个你可以用来使代码略短的技巧是记住
input
可以在等待输入时显示一个字符串,所以你不需要预先print
。
应用所有上述情况,我们得到这个代码:
def read_sudoku(file): with f as open(file, 'r'): # Use with statement
# pass 'r' to open file in read-only mode
data = f.readlines()
return "".join(data)
def main():
file = input('File name: ') # Remove print and pass the string to input
read_sudoku(file) # Pass the file name
main()
以上是 如何将文件读入我的拼图解算器? 的全部内容, 来源链接: utcz.com/qa/257727.html