Python 如果文件a中包含文件b,则将文件b的记录打印出来输出到c文件里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 如果文件a中包含文件b,则将文件b的记录打印出来输出到c文件里相关的知识,希望对你有一定的参考价值。

如果文件a中包含文件b,则将文件b的记录打印出来输出到c文件里

文件a:
10/05766798607,11/20050325191329,29/0.1,14/05766798607
10/05767158557,11/20050325191329,29/0.08,14/05767158557

文件b:
05766798607
05766798608
05766798609
通过文件a和文件b对比,导出这样的文件出来.
10/05766798607,11/20050325191329,29/0.1,14/05766798607

脚本文件:
#!/usr/bin/env python

with open('a.txt') as f:
    filea=f.readlines()
with open('b.txt') as f:
    fileb=f.readlines()
print ''.join([ w for c in fileb for w in filea if c.strip() in w ])

文件a:
root@ubuntu:~/python/1211# more a.txt 
10/05766798607,11/20050325191329,29/0.1,14/05766798607
10/05767158557,11/20050325191329,29/0.08,14/05767158557

文件b:
root@ubuntu:~/python/1211# more b.txt 
05766798607 
05766798608 
05766798609

打印结果:
10/05766798607,11/20050325191329,29/0.1,14/05766798607

参考技术A

用list,dic,open就可以了

outKey = 
for entry in open("b.txt", "r"):
    outKey[entry.strip()] = []
outHand = open("c.txt", "w")
for entry in open("a.txt", "r"):
    for value in entry.strip().split(","):
        (v1,v2) = value.split("/")
        if v2 in outKey:
            outHand.write(entry)
            break;

本回答被提问者采纳

基于固定相对路径在 zip 文件中包含目录结构

【中文标题】基于固定相对路径在 zip 文件中包含目录结构【英文标题】:Include a directory structure in a zip file based on a fixed relative path 【发布时间】:2016-12-09 13:35:56 【问题描述】:

给定路径 a:\\b\\c\\d\\e 处的目录,我想在 python 3.5+ 中创建一个如下所示的 zipfile:

file.zip # want this
 +d
  +-...files from d\
  +-e
    +-...files from e\

我通过使用oszipfile 来尝试这样的目标路径:

start_path = "a:\\b\\c\\d"

for root, dirs, files in os.walk(start_path):
    for file in files:
        ziph.write(os.path.relpath(os.path.join(root, file)))

由于relpath 和工作目录位于b,代码将创建一个zip 文件,如下所示:

file.zip # do not want this
 +c
  +-...files from c\
  +-d
    +-...files from d\
    +-e
      +-...files from e\

我的问题是:我如何强制 zipwriter 创建如开头所示的目录结构,从 dir d 开始,而我只在运行时知道完整路径。

【问题讨论】:

【参考方案1】:

ZipFile.write 接受second parameter,这是您希望它位于zip 内的目录。所以你可以有类似的东西:

start_path = "a:\\b\\c\\d"
import os
zip_start_path = start_path.split(os.sep)[-1]

【讨论】:

谢谢!我似乎忽略了arcname 参数。我可以让路径分割分隔符 os 独立吗? 是的,你得到了os.sep (docs.python.org/3/library/os.html#os.sep)的分隔符 谢谢,这对我有帮助!

以上是关于Python 如果文件a中包含文件b,则将文件b的记录打印出来输出到c文件里的主要内容,如果未能解决你的问题,请参考以下文章

【java问题】在java语言中,在包p1中包含包p2,类A直接隶属于p1,类B直接隶属于包p2,

批处理脚本 - dir /b 在输出文件中包含目录名称和空行

vs2010 相对路径中附加包含目录 不好用,请帮忙看看

[python]特殊输入格式(输入中包含空格逗号等)

gitlab,包含在其他包含文件中?

如何在python安装包中包含文本文件?