Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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读取文件_Python_File - Fatal编程技术网

python读取文件

python读取文件,python,file,Python,File,我需要从传递到我编写的python程序的文件中获取特定的行号。我知道我想要的行将是第5行,所以有没有一种方法可以让我只抓取第5行,而不必遍历文件?如果你知道在你感兴趣的行之前有多少字节,你可以搜索到那一点并读出一行。否则,“行”不是第一类构造(它只是一个字符列表,以您赋予其特殊含义的字符(换行符)结尾)。要找到这些换行符,必须读入文件 实际上,您可以使用readline方法读取5行代码,然后读取您的行 你为什么要这样做?如果你知道在你感兴趣的行之前有多少字节,你可以搜索到那一点并读出一行。否则,

我需要从传递到我编写的python程序的文件中获取特定的行号。我知道我想要的行将是第5行,所以有没有一种方法可以让我只抓取第5行,而不必遍历文件?

如果你知道在你感兴趣的行之前有多少字节,你可以
搜索到那一点并读出一行。否则,“行”不是第一类构造(它只是一个字符列表,以您赋予其特殊含义的字符(换行符)结尾)。要找到这些换行符,必须读入文件

实际上,您可以使用
readline
方法读取5行代码,然后读取您的行


你为什么要这样做?

如果你知道在你感兴趣的行之前有多少字节,你可以
搜索到那一点并读出一行。否则,“行”不是第一类构造(它只是一个字符列表,以您赋予其特殊含义的字符(换行符)结尾)。要找到这些换行符,必须读入文件

实际上,您可以使用
readline
方法读取5行代码,然后读取您的行


你为什么要这么做?

我认为以下几点可以:

line_number=4

# Avoid reading the whole file
f = open('path/to/my/file','r')
count=1
for i in f.readline():
    if count==line_number:
        print i
        break
    count+=1

# By reading the whole file
f = open('path/to/my/file','r')
lines = f.read().splitlines()
print lines[line_number-1]     # Index starts from 0

这应该给你文件中的第四行。

我认为下面应该做:

line_number=4

# Avoid reading the whole file
f = open('path/to/my/file','r')
count=1
for i in f.readline():
    if count==line_number:
        print i
        break
    count+=1

# By reading the whole file
f = open('path/to/my/file','r')
lines = f.read().splitlines()
print lines[line_number-1]     # Index starts from 0
这将为您提供文件中的第4行。

您可以使用

你可以使用它



我需要为我的AI课程做一些项目。基本上,我被传递了一个文本文件,我知道第5行包含了解算器的块数。它本质上是一个将文本文件转换为SAT实例的程序。你为什么要跳到5号呢。阅读并丢弃它们有什么不对?我可以这么做。。我只需要能够得到第五行的任何东西。一些我需要为我的AI课程做的项目。基本上,我被传递了一个文本文件,我知道第5行包含了解算器的块数。它本质上是一个将文本文件转换为SAT实例的程序。你为什么要跳到5号呢。阅读并丢弃它们有什么不对?我可以这么做。。我只需要能够获取第5行中的任何内容。这看起来可以工作,但我需要获取从命令行传入的文件。。。所以类似python myprogram blocks.txt的东西,我需要从blocks.txt中获取第5行。这个解决方案唯一的问题是它会将整个文件读入内存。修复。。在第一种情况下,您正在使用
readline
(也可以说
for i In f
)读取前4行(尽管没有使用它们)。在第二种情况下,您将整个文件读取到内存中,然后对其进行“解析”以获取换行符,这可能不是一个好主意。这看起来会起作用,但我需要获取从命令行传入的文件。。。所以类似python myprogram blocks.txt的东西,我需要从blocks.txt中获取第5行。这个解决方案唯一的问题是它会将整个文件读入内存。修复。。在第一种情况下,您正在使用
readline
(也可以说
for i In f
)读取前4行(尽管没有使用它们)。在第二种情况下,您将整个文件读入内存,然后对其进行换行“解析”,这可能不是一个好主意。除非您知道第5行的特定缓冲区位置,否则必须遍历第1-4行才能到达第5行。这是因为行是由文件中是否存在新行决定的。这就是你要问的吗?或者,您的意思是,您不想为了检索第5行而加载整个文件?除非您知道第5行的特定缓冲区位置,否则必须遍历第1-4行才能到达第5行。这是因为行是由文件中是否存在新行决定的。这就是你要问的吗?或者你的意思是,你不想为了检索第5行而加载整个文件?很好。我不知道这个模块。虽然我不确定它是否解决了这里的问题。请参阅我的示例和文档;)美好的我不知道这个模块。虽然我不确定它是否解决了这里的问题。请参阅我的示例和文档;)