我正在從750行的文本文件中讀取數據。這是我的代碼:從文件中讀取的Python突然停止
x = 0
with open(path.join(_path, _filename), 'rU') as f:
for line in f:
print x, line
x += 1
過程在行713這總是停在打印出:
709 83968|10-07-2014 04:00:00|4607|8059|JNBO=4Y8%_LLLC*6K/&:).|"LC[IB91/""L+E>\B%3K#VM&"|"PHS[D_(""%OUR3\6VH^<!M"""|74005|57009|0|0
710 83969|10-07-2014 04:00:00|1391|8059|I?WWB^!KFY3EY\QD50H/.0|KSN<U$-&?*END,=GHL3<N%|AHC\UJ70%)0/:2K&7A22F&|74005|57009|0|0
711 84349|10-07-2014 04:00:00|36518|8059|C$>P!_8!TTDJK*[email protected]|O!!LB_I2+ARD]W!)U_S56)|"A3$(74Q2\74_/2'3;<\%5"""|74005|74004|0|0
712 80354|10-07-2014 04:00:00|7267|8059|[email protected]#JK4LC;M_-O!<#.95B/|N8#2R&=B[4]D7KOD\3`CI#|"B,[`Z=K$*#36;7""L;9^,6("|74005|57009|0|0
713 76910|10-07-2014
這是該文件的節選:
83968|10-07-2014 04:00:00|4607|8059|JNBO=4Y8%_LLLC*6K/&:).|"LC[IB91/""L+E>\B%3K#VM&"|"PHS[D_(""%OUR3\6VH^<!M"""|74005|57009|0|0
83969|10-07-2014 04:00:00|1391|8059|I?WWB^!KFY3EY\QD50H/.0|KSN<U$-&?*END,=GHL3<N%|AHC\UJ70%)0/:2K&7A22F&|74005|57009|0|0
84349|10-07-2014 04:00:00|36518|8059|C$>P!_8!TTDJK*[email protected]|O!!LB_I2+ARD]W!)U_S56)|"A3$(74Q2\74_/2'3;<\%5"""|74005|74004|0|0
80354|10-07-2014 04:00:00|7267|8059|[email protected]#JK4LC;M_-O!<#.95B/|N8#2R&=B[4]D7KOD\3`CI#|"B,[`Z=K$*#36;7""L;9^,6("|74005|57009|0|0
76910|10-07-2014 04:00:00|49425|8059|"D'A\<(%N?FS\ARP??""CJ0."|"H`]8#E^"")T""P""0':]OZ%V*"|"F'),+F`6WU?UT>""=K<#PC."|74005|74004|0|0
84356|10-07-2014 04:00:00|3236|8059|"GT&]S-7<A%MSBO>""Z2(T%+"|F6YDP\;[email protected]_4?BW!1VIC1O!|P/O/9W)(YJ&+:\=HK)*OA$|74005|55427|0|0
89539|10-07-2014 04:00:00|1113|8059|"GP',L]BZVELBMY`6(&4%^%"|"L2`GSTCJ:^.\G\I:'SQ*T'"|"JD^28<IKKQ6=%7V/FX6-['"|74005|74004|0|0
線713是這個片段底部的第三個。
我想它認爲它到達最後(也許是一個EOF字符?)。
任何想法該文件有什麼問題?
UPDATE:這是整個文件>http://dpaste.com/3CCGZY9
UPDATE 2:這是從VIM截圖:https://dl.dropboxusercontent.com/u/2423935/err.jpg(導致問題被高亮線)
UPDATE 3:似乎粘貼從背面dpaste解決了這個問題。但是,我無法爲此做任何事情,因爲解析之前的文件是從FTP服務器下載的。
try:
connection = FTP("<SERVER_IP>")
connection.login("<username>", "<pass>")
connection.cwd("dir1")
filenames = connection.nlst()
filenames = sorted(filenames)
for name in filenames:
exists = path.isfile(path.join(_path, name))
if not exists: # fetch it!!
localfile = open(path.join(_path, name), 'wb')
connection.set_pasv(False)
connection.retrbinary("RETR " + name,
localfile.write, 1024)
except all_errors as e:
log.error("Cannot connect to FTP Server because %s" % repr(e))
更新4:這我使用從FTP下載的代碼,這是實際的文件:https://dl.dropboxusercontent.com/u/2423935/source.txt這是十六進制轉儲:https://dl.dropboxusercontent.com/u/2423935/hex.txt
我無法使用您提供的代碼和輸入重現問題。所有行都被正確讀取和「打印」。 – 2014-10-09 08:50:57
適合我,在Linux上使用Python 2.7.6。你在用什麼? – 2014-10-09 08:51:32
同樣。 Linux和python 2.7。文件中有750行相同類型的行。它可能是內存問題嗎? – xpanta 2014-10-09 08:53:22