我有一段代碼,以打開txt文件意甲是這樣的:避免因爲如果在Python
path_name = './path/to/my/file'
file_name = 'initial_name_of_file'
kms = np.arange(0,9,1) # kilometers
ms = np.arange(0,1000,10) # meters
for ik in kms:
for im in ms:
sing_fName = file_name+str(ik)+'+'+str(im)+'.txt'
with open(path.join(path_name, sing_fName).replace("\\","/")) as profile:
var_reader = csv.reader(profile, delimiter=',')
if ik==8 and im==410:
break
在這一點上,我想代碼時停止IK = 8和IM = 410,即代碼應與IM去從0 RO 990而IK變爲0-7和停止IM 410如果IK = 8
我的問題是雙重的:
- 有沒有更有效生成單個文件名的方法 (sing_fN ame)並依次打開文件以訪問 數據?
- 如何跳過'for for if'嵌套?
謝謝!
我沒有看到一個'if',但看看'itertools',它有一個'product'功能。 – glglgl
你是對的:我編輯問題。 – brodegon
如果你真的不喜歡2 forloop,你可以使用[itertools.product](https://docs.python.org/2/library/itertools.html#itertools.product)或列表理解像'for sing_fName in [「文件名%s +%s.txt」%(kms,ms),範圍爲(0,9,1)時爲kms,範圍爲(0,1000,10)]:' – CSJ