如何将文件读入我的拼图解算器?

我正在尝试将一个数独谜题读入我的数独解算器程序。该文件的名称是'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')

(您必须指定文件的读取模式(rwar+)等,在这种情况下,读= r

  • 将在根目录下的文件,你的项目或将完整目录包含到文件中。

回答:

您可能有错误,因为read_sudoku需要一个参数,并且您没有传递任何参数。

图片的标题说明:

  • 我也建议你使用with语句来打开文件。

  • 除非这是一个非常奇怪的数独,你不需要在这里使用evaleval所做的是将字符串作为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

回到顶部