Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 “if file.find(';freq-';)的作用是什么?”-我的意思是?_Python_String_Glob - Fatal编程技术网

Python “if file.find(';freq-';)的作用是什么?”-我的意思是?

Python “if file.find(';freq-';)的作用是什么?”-我的意思是?,python,string,glob,Python,String,Glob,我是一名化学专业的学生,想写一个脚本,从高斯输出文件中提取一些数据(如耦合常数和质子间距离) 我发现了一个从高斯输出文件中提取化学位移的脚本。然而,我不明白if file.find('freq-')的作用是什么=-1脚本中的平均值 这里是脚本的一部分(因为脚本还做其他事情,所以我刚刚播下了与我的问题相关的部分): 我认为在def read\u gaussian\u outputfiles()位中,我们创建了一个文件列表,只需将扩展名为“.out”的所有文件添加到列表中即可 read\u gaus

我是一名化学专业的学生,想写一个脚本,从高斯输出文件中提取一些数据(如耦合常数和质子间距离)

我发现了一个从高斯输出文件中提取化学位移的脚本。然而,我不明白if file.find('freq-')的作用是什么=-1脚本中的平均值

这里是脚本的一部分(因为脚本还做其他事情,所以我刚刚播下了与我的问题相关的部分):

我认为在
def read\u gaussian\u outputfiles()
位中,我们创建了一个文件列表,只需将扩展名为“.out”的所有文件添加到列表中即可

read\u gaussian\u freq\u outfiles(文件列表)
位可能包含文件名中带有“freq-”的列表文件。但是
file.find('freq-')是什么呢=-1
平均值

这是否意味着我们在文件名中找到的任何内容都不等于-1或其他值

其他一些附加信息:高斯输出文件名的格式为:
xxxx-opt_freq-conf-yyyy.out
其中
xxxx
是分子的名称,
yyy
是数字

s.find(foo)
未能在
s
中找到
foo
时,它返回
-1
。因此,当
s.find(foo)
没有返回
-1
时,我们知道它没有失败

read\u gaussian\u freq\u outfiles
文件列表中的每个文件名中查找术语
“freq-”
。如果它成功地在文件名中找到这个短语,它会在名为
list\u of_freq\u outfiles
的列表中附加一个包含该文件、一个“conf number”(不确定这是什么)和文件内容的列表

我创建了三个文件,
bye.txt
hello.txt
,和
helloworld.txt
来演示用法

在本例中,我将打印以
.txt
结尾的所有文件,创建文件列表,然后打印文件名中包含短语
“再见”
的所有文件。这应该只打印
再见.txt

09:53 $ ls
goodbye.txt    hello.txt      helloworld.txt
(venv) ✔ ~/Desktop/ex 
09:53 $ python
Python 2.7.11 (default, Dec  5 2015, 14:44:47) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.1.76)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import glob
>>> for file in glob.glob('*.txt'):
...   print(file)
... 
goodbye.txt
hello.txt
helloworld.txt
>>> list_of_files = [ file for file in glob.glob('*.txt') ]
>>> print(list_of_files)
['goodbye.txt', 'hello.txt', 'helloworld.txt']
>>> for file in list_of_files:
...   if file.find('goodbye') != -1:
...     print(file)
... 
goodbye.txt

实际上,
再见.txt
是唯一打印的文件。

python中的字符串查找方法查看给定字符串中子字符串的出现情况(参考)


在这里,它正在查找包含“freq-”子字符串的所有文件名。

正如其他答案所示:如果.find()检索-1,它将无法找到您要查找的内容。这与.find将返回它可以在其中找到查询的第一个索引有关。所以在下面的句子中

The cat is on the mat
find('cat'),它将返回4(因为'cat'从索引4开始(从0开始!))


然而,如果它找不到它,句子.find('dog')将返回它唯一能返回的东西:-1。如果它返回0作为“找不到”,您可能认为您的查询从索引0开始。有了-1,你就知道它找不到了。

你试过了吗?是的,我确实读过这一页,但当我读到它时,我没有完全理解到底发生了什么。我是Python新手(我开始学习的原因是编写一个脚本来提取我在帖子中提到的任何我想提取的内容)。。。。。。所以我仍然在努力理解你所附文件中的解释。用你提供的例子再次阅读文档会让事情变得更清楚!非常感谢你的帮助<代码>在这里,它将查找所有包含“freq-”子字符串的文件。
从技术上讲,它将查找名称中包含“freq-”的文件。这就是我的意思,进行了更改。感谢您阅读了Nander Speerstra的评论后,我完全理解您发布的示例的输出结果。在前两种情况下,它返回15,因为您可以找到从索引15开始的字符串“exam”。在第三种情况下,你找不到它,因为你从索引40开始搜索(我想是吧?)。啊哈!这就是为什么它返回-1而不是0^^很好的解释
The cat is on the mat