【发布时间】:2014-08-02 04:44:09
【问题描述】:
我正在编写的 Python 脚本的前几行如下所示:
#!/usr/bin/env python
import os
import sys
import subprocess
import csv
import itertools
fin=open("filelist.txt",'r')
print(fin)
for line in fin:
TARG_FILE = open('fin', 'r')
spamreader = csv.reader(TARG_FILE, delimiter='\t')
for line in spamreader:
print(line[0:6])
其中 filelist.txt 是与脚本位于同一目录中的文本文件。如果我把 fin 放在引号中,函数返回:
File "VCFParser.py", line 13, in <module>
TARG_FILE = open('fin', 'r')
IOError: [Errno 2] No such file or directory: 'fin'
但是如果我不带引号输入,我会得到:
Traceback (most recent call last):
File "VCFParser.py", line 11, in <module>
TARG_FILE = open(fin, 'r')
TypeError: coercing to Unicode: need string or buffer, file found
我怀疑这个问题与here发现的问题非常相似:
但是,我无法使用那里的信息使脚本工作。
如果我 print(fin),它将返回适当的文件路径以供读取:
print(fin)
16.31235000.31366000/vcfBeta-GS000012109-ASM.vcf.gz.summary.txt
我在这里缺少什么?
这与 filelist.txt 文件中每一行末尾的换行符有什么关系吗?
【问题讨论】: