【发布时间】:2019-03-14 18:08:01
【问题描述】:
我的代码获取信息并将其存储在一个列表中。排序后的列表是:
example/
example/text1.txt
example/text2.txt
example/text3.txt
我想引用 text1.txt 并对它执行一个函数,然后转到列表中的下一个条目(在本例中为 text2.txt)。
我可以看到一些我可以用正则表达式做的事情,但它什么也没输出。 到目前为止,这是我的部分代码:
FileNames = name in sorted(zip_file.namelist())
regex = r"[1-9]+ \d"
matches = re.findall(regex, str(FileNames))
for match in matches:
print("%s" % (match))
编辑: 使用不同的技术,这是我到目前为止得到的:
import zipfile
import re
zip_file = zipfile.ZipFile('/example.zip','r')
#zip_file = zipfile.ZipFIle(input("What's the filepath?: "))
for name in sorted(zip_file.namelist()):
#print(name)
for file_path in name:
file_name = file_path.split("/")[-1]
if "1" in file_name:
print(file_name)
else:
print("This line does not contain a valid path to a text file.")
zip_file.close()
它给了我一个真正的总输出,类似于
example/text1.txt
The Line does not contain a valid path to a text file.
^重复了很多次
【问题讨论】:
-
您想对
text1.txt和其他.txt文件执行什么类型的功能?你想把它当作一个文件来处理,并可能读写text1.txt,并且需要一种方法来为它分配一个文件句柄吗? -
@davedwards e x a c t l y。你成功了
-
如果
regex不是必需的,请考虑删除该标签 -
输出重复“很多次”,因为嵌套的
for-loops 以字符串的形式迭代filepath,每个重复文件名中的一个字符,实际上不是 阅读 文件内容,如您所料。相反,删除第二个for-loop。一起试试这个:for file_name in sorted(zip_file.namelist()): with open(file_name, 'r') as f: print(f.read().strip())将,例如,printexample.zip中每个.txt文件的内容。
标签: regex python-3.x list