我的以下csv文件(test.csv)含量樣品:注意:我test.csv文件大約60MBValueError異常:無效與基座10字面INT(): '3" 爲 r'
"Position","Value"
"2545600","19"
"2545601","19"
"2545602","19"
"2545603","19"
"2545604","20"
"2545605","20"
"2545606","21"
"2545607","22"
"2545608","21"
"2545609","20"
"2545610","21"
"2545611","18"
"2545612","19"
"2545613","21"
"2545614","21"
"2545615","21"
"2545616","21"
"2545617","22"
"2545618","25"
"2545619","25"
我下面的Python代碼(test.py):
#!/usr/bin/python
import sys
txt = open(sys.argv[1], 'r')
out = open(sys.argv[2], 'w')
mil = float(sys.argv[3])
out.write('chr\tstart\tend\tfeature\t'+sys.argv[2]+'\n')
for line in txt:
if 'Position' not in line:
line = line.strip('",\n')
line = line.split('","')
line[1] = str(int(line[1])/mil)
out.write('gi|255767013|ref|NC_000964.3|\t'+line[0]+'\t'+line[0]+'\t\t'+line[1]+'\n')
txt.close()
out.close()
我的命令行:
python test.py test.csv test.igv 5
後,我跑我得到了一個錯誤的命令:
Traceback (most recent call last):
File "test.py", line 15, in <module>
line[1] = str(int(line[1])/mil)
ValueError: invalid literal for int() with base 10: '3"\r'
但是,如果我創建一個新的空csv文件,即small.csv並從我的test.csv文件複製/粘貼只有幾行(如上面的示例)。然後它成功運行該命令。
python test.py small.csv small.igv 5
輸入small.csv:
"Position","Value"
"2545600","19"
"2545601","19"
"2545602","19"
"2545603","19"
"2545604","20"
"2545605","20"
"2545606","21"
"2545607","22"
"2545608","21"
"2545609","20"
輸出small.igv:
chr start end feature small.igv
gi|255767013|ref|NC_000964.3| 2545600 2545600 3.8
gi|255767013|ref|NC_000964.3| 2545601 2545601 3.8
gi|255767013|ref|NC_000964.3| 2545602 2545602 3.8
gi|255767013|ref|NC_000964.3| 2545603 2545603 3.8
gi|255767013|ref|NC_000964.3| 2545604 2545604 4.0
gi|255767013|ref|NC_000964.3| 2545605 2545605 4.0
gi|255767013|ref|NC_000964.3| 2545606 2545606 4.2
gi|255767013|ref|NC_000964.3| 2545607 2545607 4.4
gi|255767013|ref|NC_000964.3| 2545608 2545608 4.2
gi|255767013|ref|NC_000964.3| 2545609 2545609 4.0
這就是我想要的。所以這個問題,爲什麼我不能在一個更大尺寸的csv文件上做到這一點?