如何将格式化的txt文件加载到Python中进行搜索
我有一个用不同缩进格式化的文件,它有几百行长,我尝试了各种方法将它作为文件和变量加载到python中,但都没有成功。加载文件的有效方法是什么。我的最终目标是加载文件,并在其中搜索特定的文本行如何将格式化的txt文件加载到Python中进行搜索,python,file,search,Python,File,Search,我有一个用不同缩进格式化的文件,它有几百行长,我尝试了各种方法将它作为文件和变量加载到python中,但都没有成功。加载文件的有效方法是什么。我的最终目标是加载文件,并在其中搜索特定的文本行 with open('''C:\Users\Samuel\Desktop\raw.txt''') as f: for line in f: if line == 'media_url': print line else: print "v
with open('''C:\Users\Samuel\Desktop\raw.txt''') as f:
for line in f:
if line == 'media_url':
print line
else:
print "void"
Error: Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> with open('''C:\Users\Samuel\Desktop\raw''') as f: IOError: [Errno 22] invalid mode ('r') or filename: 'C:\\Users\\Samuel\\Desktop\raw
打开(''C:\Users\Samuel\Desktop\raw.txt'')作为f:
对于f中的行:
如果行=='media\u url':
打印行
其他:
打印“作废”
错误:回溯(最近一次调用上次):文件“”,第1行,在中打开('C:\Users\Samuel\Desktop\raw')作为f:IOError:[Errno 22]无效模式('r')或文件名:'C:\\Users\\Samuel\\Desktop\raw'
以下是将文件内容读入变量的标准方法:
with open("filename.txt", "r") as f:
contents = f.read()
如果需要行列表而不是字符串中的整个文件,请使用以下命令:
with open("filename.txt", "r") as f:
contents = list(f.read())
然后,您可以使用
if any("search string" in line for line in contents):
print 'line found'
以下是将文件内容读入变量的标准方法:
with open("filename.txt", "r") as f:
contents = f.read()
如果需要行列表而不是字符串中的整个文件,请使用以下命令:
with open("filename.txt", "r") as f:
contents = list(f.read())
然后,您可以使用
if any("search string" in line for line in contents):
print 'line found'
如果您试图搜索特定行,则最好避免将整个文件加载到:
with open('filename.txt') as f:
for line in f:
if line == 'search string': # or perhaps: if 'search string' in line:
# do something
如果您试图在忽略缩进的情况下搜索特定行的存在,则需要使用
if line.strip() == 'search string'.strip():
为了在比较之前去掉前导(和尾随)空格。如果要搜索特定行,最好避免将整个文件加载到:
with open('filename.txt') as f:
for line in f:
if line == 'search string': # or perhaps: if 'search string' in line:
# do something
如果您试图在忽略缩进的情况下搜索特定行的存在,则需要使用
if line.strip() == 'search string'.strip():
以便在比较之前去掉前导(和尾随)空格
如果文件以raw.txt的形式存储在我的桌面上,我应该如何识别它来代替'filename.txt'@user3672652*nix,Mac:
“~/desktop/raw.txt”
;Windows(IIRC):''C:\Documents and Settings\\Desktop\raw.txt'
这是我在运行代码时遇到的错误,也是我以前遇到的错误:回溯(最近一次调用):文件“”,第1行,以打开('C:\Users\Samuel\Desktop\raw.txt')作为f:IOError:[Errno 22]无效模式('r')或者文件名:“C:\\Users\\Samuel\\Desktop\raw.txt'@user3672652三个引号很重要。我添加了引号,但仍然得到相同的错误。如果文件以raw.txt的形式存储在我的桌面上,我应该如何识别它来代替“filename.txt”@user3672652*nix,Mac:“~/Desktop/raw.txt”
;Windows(IIRC):''C:\Documents and Settings\\Desktop\raw.txt'
这是我在运行代码时遇到的错误,也是我以前遇到的错误:回溯(最近一次调用):文件“”,第1行,以打开('C:\Users\Samuel\Desktop\raw.txt')作为f:IOError:[Errno 22]无效模式('r')或者文件名:“C:\\Users\\Samuel\\Desktop\raw.txt'@user3672652这三个引号很重要。我添加了引号,但仍然会得到相同的错误。发布脚本后,人们将能够告诉您是否可以对其进行优化。这就是我目前为止在@Istvan Chung所做的。我仍然收到一个错误,它是这样的:Traceback(最近一次调用last):File“”,第1行,以f:IOError:[Errno 22]无效模式('r')打开('C:\Users\Samuel\Desktop\raw')或者文件名:“C:\\Users\\Samuel\\Desktop\raw”将错误消息和其他相关信息添加到您的问题中。发布您的脚本,人们将能够告诉您是否可以对其进行优化。这就是我目前在@Istvan Chung所做的。我仍然收到一个错误,上面写着:Traceback(最近一次调用last):File“”,第1行,以打开('C:\Users\Samuel\Desktop\raw')作为f:IOError:[Errno 22]无效模式('r')或文件名:'C:\\Users\\Samuel\\Desktop\raw'将错误消息和其他相关信息添加到您的问题中。请不要使用readlines
。如果你真的想,只需调用list(contents)
,尽管对于单次传递,单独使用文件应该可以。请不要使用readlines
。如果您真的想,只需调用list(contents)
,尽管对于单次传递,单独调用文件应该可以。我仍然收到一个错误:回溯(最近一次调用):文件“”,第1行,以打开(“r'C:\Users\Samuel\Desktop\raw.txt',“r”)作为f:IOError:[Errno 22]无效模式('r')或文件名:“r'C:\\Users\\Samuel\\Desktop\raw.txt'”路径应该有两个反斜杠或“r”前缀,但不能同时有两个。这很混乱:)我建议将数据文件与Python文件放在同一个目录中,并从那里进行调试。我仍然会收到一个错误:回溯(最近一次调用):文件“”,第1行,带open(“r'C:\Users\Samuel\Desktop\raw.txt',“r”)作为f:IOError:[Errno 22]无效模式('r')或文件名:“r'C:\\Users\\Samuel\\Desktop\raw.txt'”路径应该有两个反斜杠或“r”前缀,但不能同时有两个。这很容易混淆:)我建议将数据文件与Python文件放在同一目录中,并从那里进行调试。