Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用def函数读取并返回文本文件_Python_Python 3.x_Function - Fatal编程技术网

Python 使用def函数读取并返回文本文件

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中输入文件名并获取行,但我无法使其工作,我的文件位于同一目录中,但当我运行此操作时,不会发生任何情况,有任何方法修复此问题吗?或者在另一个.py文件中调用该函数

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]