根据标题,问题是我想要做以下事情:
请参阅下面的我的尝试(编辑为敏感):
with open(FileName, "w+") as file:
file.write(FileName + "," + Quantity + "\n")
# Start from beginning of data and read each line and take specific data
for x in range(StartCount,Quantity+StartCount)):
os.chdir(FileLocation + country)
with open(OutputFileName, 'r') as OutputFile:
for x, line in enumerate(OutputFile):
OutputFileData = [line.split(" ") for line in OutputFile]
#Select data you want for file from output file. Nb OutputFileData[1][:-1] removed extra part of a column
try:
FileData = OutputFileData[0]+ "," + OutputFileData[1][:-1] + "," + OutputFileData[2]
....然后我继续将文件数据附加到我正在创建的文件中。
注意我的代码在我使用时工作正常:
with open(OutputFileName, 'r') as OutputFile:
lines=OutputFile.readlines()
temp = lines[x]
OutputFileData = temp.split(" ")
但正如我之前所说,我相信当我在服务器上运行它时脚本的缓慢是因为它不断迭代:lines = OutputFile.readlines()导致它减慢..所以当我检查文件我试图创建我将看到它停在一定数量的线,然后它只是挂起..
请帮我找出更好的方法。
刚回来说当时的问题实际上并不是我的代码,只是服务器真的那么慢。所以我最终让代码在各台机器上运行,然后将数据丢弃到需要它的服务器上。这种性能得到了极大的改善。
如何一次读取N行并处理“块”中的行,然后重复该过程。像这样的东西:
```
textfile = "f:\\mark\\python\\test.txt"
def read_n(file, x):
with open(file, mode='r') as fh:
while True:
data = ''.join(fh.readline() for _ in range(x))
if not data:
break
yield data
for nlines in read_n(textfile, 5):
print(nlines)
```
哪个收益率(来自我的简单示例文件):
abc
123
def
456
ghi
789
jkl
abc
123
def
456
ghi
789
jkl
abc
123
def
456
ghi
789
jkl
abc
123
def
456
ghi
789
jkl
我只是以块的形式打印线条,但您可以执行您正在进行的任何处理。