Python 使用def函数读取并返回文本文件
我想在本例books.txt中输入文件名并获取行,但我无法使其工作,我的文件位于同一目录中,但当我运行此操作时,不会发生任何情况,有任何方法修复此问题吗?或者在另一个.py文件中调用该函数Python 使用def函数读取并返回文本文件,python,python-3.x,function,Python,Python 3.x,Function,我想在本例books.txt中输入文件名并获取行,但我无法使其工作,我的文件位于同一目录中,但当我运行此操作时,不会发生任何情况,有任何方法修复此问题吗?或者在另一个.py文件中调用该函数 books.txt 7,1,2,3,4,3 2,6,1,3,1 但这不会返回任何内容,我不知道该怎么办:(您需要将这一行添加到末尾,因此它实际上会打印出值: print(read_txt(file_name)) 所以完整的代码应该是(我也更改了一些代码,因为OP说了要更改的内容): 输出: [7, 1
books.txt
7,1,2,3,4,3
2,6,1,3,1
但这不会返回任何内容,我不知道该怎么办:(您需要将这一行添加到末尾,因此它实际上会打印出值:
print(read_txt(file_name))
所以完整的代码应该是(我也更改了一些代码,因为OP说了要更改的内容):
输出:
[7, 1, 2, 3, 4, 3 2, 6, 1, 3, 1]
谢谢,我得到了这个['7,1,2,3,4,3\n','2,6,1,3,1']我怎么可以这样打印7,1,2,3,4,3,2,6,1,3,1lines@Deepssz我编辑了我的答案,您可以查看:-)接受文件名作为命令行参数几乎总是比要求交互式提示更好的设计。这样,用户就可以更容易地使用shell的历史记录、通配符、制表符完成等以及循环文件等。查看
sys.argv
获取作为命令行参数的字符串列表,查看argparse
获取更高级的参数处理。
file_name = input("type the file name: ")
def read_txt(file_name):
file = open(file_name, "r")
lines = [x for i in file.readlines() for x in list(map(int, i.strip().split(',')))]
file.close()
return lines
print(read_txt(file_name))
[7, 1, 2, 3, 4, 3 2, 6, 1, 3, 1]