Hướng dẫn python for loop create files - python cho vòng lặp tạo tập tin

Tôi đang cố gắng viết một chương trình sẽ tạo tệp, một tệp sẽ trông như thế này:

1

19

Tệp tiếp theo

2

18

3

17

etc...

Và vì vậy cho đến khi 19 trên dòng đầu tiên và 1 nằm trên dòng thứ hai, tôi khá nhiều điều Số nhưng không phải là cuối cùng, bất kỳ đề xuất nào xin vui lòng?

 for x in range[1,19]:
       file = open["test%x"%x, 'w']
       file.write['%x'%x]
       for x in range[19,1]:
           file = open["test%x"%x, 'a']
           file.write['%x'%x]
       file.close[]

Thedudxo

5292 Huy hiệu vàng8 Huy hiệu bạc21 Huy hiệu đồng2 gold badges8 silver badges21 bronze badges

Đã hỏi ngày 6 tháng 11 năm 2014 lúc 22:27Nov 6, 2014 at 22:27

0

Bạn có thể thử một cái gì đó như thế này:

for x in range[1,20]:
   f = open["test"+str[x], 'w']
   f.write[str[x] + "\n" + str[20-x]]
   f.close[]

Đã trả lời ngày 6 tháng 11 năm 2014 lúc 22:32Nov 6, 2014 at 22:32

Miindlekmiindlekmiindlek

3,48513 Huy hiệu bạc25 Huy hiệu đồng13 silver badges25 bronze badges

Một cái gì đó như thế này nên hoạt động:

num = 19
for x in range[1, num+1]:
    with open file[''.join[['file_',
                            str[x],
                            '.txt'], 'w'] as the_file:
        file.write[''.join[[str[x],
                            '\n',
                            str[num-x+1]]]

Đã trả lời ngày 6 tháng 11 năm 2014 lúc 22:34Nov 6, 2014 at 22:34

101101101

8.1763 Huy hiệu vàng38 Huy hiệu bạc65 Huy hiệu Đồng3 gold badges38 silver badges65 bronze badges

Bạn đang sử dụng hai tệp có cùng tên FileObject mà không bao giờ đóng tệp đầu tiên. Đó là một vấn đề. Tại sao lại mở lại nó? Nếu bạn muốn tạo 19 tệp, chỉ cần viết những gì bạn cần, đóng nó và tiếp tục.

Thứ hai, hãy nhớ rằng đối số thứ hai trong hàm phạm vi [] là giới hạn/giới hạn trên. Đó là một giá trị mà phạm vi sẽ phát triển để đáp ứng, nhưng không bao giờ thực sự đạt được. Vì vậy, nếu bạn muốn 1-19, phạm vi của bạn cần phải là 1-20.

 num = 19
 for x in range[1,20]:
       filename = "test%d.txt" % [x]
       writeFile = open[filename, 'w']
       writeFile.write["%d" % [num]]
       writeFile.close[]
       num -= 1

Đã trả lời ngày 6 tháng 11 năm 2014 lúc 22:33Nov 6, 2014 at 22:33

Nếu bạn muốn tạo tệp văn bản có thể sử dụng cái này

for x in range[1,51]:
    text = open[r"file path"+str[x]+".txt", 'w']
    text.write[str[x] + "\n" + str[51-x]]
    text.close[]

Đã trả lời ngày 12 tháng 4 lúc 22:47Apr 12 at 22:47

Tôi cần tạo một số tệp để siêu liên kết đến từ ArcMap. Tôi có một thư mục của các tệp jpeg [100.jpg, 101.jpg, v.v.]. Tôi cần lặp qua chúng và tạo một tệp văn bản cùng tên ngoại trừ thay thế *.txt ở cuối bằng *.fsv [100.fsv, 101.fsv, v.v.]. Tệp văn bản này cùng tên [với TXT được thay thế bằng FSV] là một tập hợp các hướng dẫn về cách mở JPEG đó trong một phần mềm vì vậy tôi cần viết một số hướng dẫn trong đó, ví dụ 100.FSV sẽ chứa:

Open = 100.jpg đặt thành 100

Tất cả mọi thứ trong tệp TXT đều tĩnh ngoại trừ tên của JPG mà nó mở ra. Cảm ơn vì bất kì sự giúp đỡ.

Polygeo ♦

64.3K27 Huy hiệu vàng102 Huy hiệu bạc315 Huy hiệu đồng27 gold badges102 silver badges315 bronze badges

Đã hỏi ngày 14 tháng 5 năm 2013 lúc 20:06May 14, 2013 at 20:06

2

Đây là một cách để đi về nó:

Đoạn python này sẽ lặp qua một thư mục, lấy tất cả các tên tệp kết thúc bằng tiện ích mở rộng .jpg và tạo tệp văn bản mới với tiện ích mở rộng .FSV mới - tệp này sẽ chứa bất kỳ văn bản nào bạn chọn để viết cho nó.

import glob
import os
os.chdir["\dir"] #the directory containing your .jpegs
    for file in glob.glob["*.jpg"]: #iterates over all files in the directory ending in .jpg        
        f = open[[ file.rsplit[ ".", 1 ][ 0 ] ] + ".fsv", "w"] #creates a new file using the .jpg filename, but with the .fsv extension
        f.write['whatever you want in the text file'] #write to the text file
        f.close[]

Bạn sẽ kết thúc với một tệp .fsv mới cho mỗi .jpg trong thư mục gốc. Mã trên sẽ chỉ viết tất cả các tệp mới vào cùng một thư mục mà .jpgs được lưu trữ. Đây không phải là mã đẹp [không kiểm tra lỗi], nhưng nó đơn giản và nó hoạt động.

Đã trả lời ngày 14 tháng 5 năm 2013 lúc 20:53May 14, 2013 at 20:53

RadarradarRadar

10,6K8 Huy hiệu vàng58 Huy hiệu bạc113 Huy hiệu đồng8 gold badges58 silver badges113 bronze badges

3

Chỉ để thêm vào các câu trả lời khác, bạn có thể tránh phải gọi rõ ràng phương thức ____ của đối tượng tệp nếu bạn sử dụng câu lệnh with [tự động gọi close[] ngay cả khi một ngoại lệ được nâng lên]:

with open[filename, 'w'] as f:
    f.write["open=" + jpg + " set to 100"]

Cũng đừng quên viết một kết thúc dòng nếu đó là ý định ...

Đã trả lời ngày 14 tháng 5 năm 2013 lúc 21:14May 14, 2013 at 21:14

blah238blah238blah238

Phim huy hiệu vàng 35,5k792 Huy hiệu bạc193 Huy hiệu đồng7 gold badges92 silver badges193 bronze badges

2

Bởi vì bạn đang hỏi trong GIS, tôi bao gồm cả Arcpy trong câu trả lời của tôi. ;]

import arcpy
from arcpy import env

env.workspace = r'C:\your\path\here'

jpgList = arcpy.ListFiles["*.jpg"]
for jpg in jpgList:
    jpgnum = jpg[:-4]
    filename = jpgnum + '.fsv'
    f = open[filename, 'w']     
    f.write["open=" + jpg + " set to 100"]     
    f.close[]

Và đó là nó!

Đã trả lời ngày 14 tháng 5 năm 2013 lúc 21:08May 14, 2013 at 21:08

MintXMintxMintx

5.34818 Huy hiệu bạc28 Huy hiệu đồng18 silver badges28 bronze badges

2

Chủ Đề