Python 如何将单行复制到每个行的单个文件中
我不知道代码出了什么问题,它没有从shell中得到任何类型的错误消息。 我想做的是:Python 如何将单行复制到每个行的单个文件中,python,matrix,file-io,Python,Matrix,File Io,我不知道代码出了什么问题,它没有从shell中得到任何类型的错误消息。 我想做的是: 将目录中的所有列表文件合并到单个列表中(每行一列一个字符串)-完成 将该列表与一个大文件进行比较,并将每一行的对应行复制到一个新的文件中—(可能?)完成!但不起作用=/ 将步骤2中的文件保存到新的输出目录中。-不工作 从大文件中删除相应的行并将其保存在同一输出目录中-不知道。(也许是流行音乐?) 是否可以使用步骤2中使用的相同字符串将输出命名为“singlelinefiles”?有人能告诉我怎么做吗? 非常感谢
#!/usr/bin/python
import os, sys, glob
#use: thisone.py <lists_dir><majorfile><out_dir>
lists = glob.glob(sys.argv[1]+ '*.txt')
listsmatrix = []
for line in lists:
listsmatrix.append(line.strip().split('\n'))
majorfile = open(sys.argv[2],'r')
majormatrix = []
for line in majorfile:
majormatrix.append(line.strip().split('\t'))
os.mkdir(sys.argv[3])
i=0
for line in majormatrix:
if line [0] in listsmatrix:
outfile = open(sys.argv[3]+ 'file'+str(i), 'w')
outfile.write(line)
outfile.close()
i+=1
#/usr/bin/python
导入操作系统、系统、全局
#用法:thisone.py
lists=glob.glob(sys.argv[1]+'*.txt')
listsmatrix=[]
对于行输入列表:
listsmatrix.append(line.strip().split('\n'))
majorfile=open(sys.argv[2],'r')
majormatrix=[]
对于majorfile中的行:
majormatrix.append(line.strip().split('\t'))
os.mkdir(sys.argv[3])
i=0
对于majormatrix中的行:
如果listsmatrix中的第[0]行:
outfile=open(sys.argv[3]+“文件”+str(i),“w”)
输出文件。写入(行)
outfile.close()
i+=1
我将感谢您的帮助。当您用“w”打开文件时,文件将被清除。因此,每次打开文件时,新行都会覆盖上一行 两种可能的解决办法: 1) 将“w”替换为“a”,这样您将附加到文件而不是覆盖它 2) 打开文件一次,最好使用“with”块,这样即使发生异常,文件也能正确关闭:
with open(sys.argv[3]+ 'file'+str(i), 'w') as outfile:
for line in majormatrix:
if line [0] in listsmatrix:
outfile.write(line)
i+=1
谢谢你,伙计!但它仍然不起作用。现在,它创建了输出文件,但在output_目录外只是一个空文件。