一、实验目的
(1)掌握文件的打开方法
(2)掌握文件的读写方法
(3)掌握文件的操作
二、实验环境
联网计算机一台/每人,内装Windows 7以上操作系统和安装Python 3.7集成开发环境IDLE。
三、实验内容
Sy9-1
随机生成100-999的1000个整数,每个整数占一行,写入D:\test.txt文件中.
Sy9-2
读取sy9-1中生成的test.txt,统计其中个位数为5的数字的个数。
Sy9-3
读取sy9-1中生成的test.txt,分别将第100,200,…,1000个数加1
四、实验步骤与结果
1. 新建文件夹并命名为学号-姓名-实验九。
2. 安装 Python 解释器Python 3.7 集成开发环境IDLE,并进入IDLE。
3. 依次输入自己编好的程序实验内容1-7的源程序,分别命名为sy9_1.py - sy9_3.py 并保存至已建好的文件夹中。
4. 检查已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。
5. 运行程序并分析运行结果是否合理。在运行时要注意当输入不同的数据时所得结果是否正确,应测试两组以上数据,分别检查在不同情况下结果是否正确。
列出1-3题源程序清单并记录上机运行结果。
Sy9-1
随机生成100-999的1000个整数,每个整数占一行,写入D:\test.txt文件中.
import random
with open("D:\\test.txt", 'w') as f:
for i in range(1000):
f.write(str(random.randrange(100,999))+'\n')
329
273
489
923
430
775
620
234
493
637
435
532
122
135
772
667
966
885
493
893
671
984
573
715
414
361
829
594
821
771
787
669
668
632
463
338
442
214
280
519
780
997
137
443
941
121
927
284
392
385
800
120
795
837
153
121
611
271
389
984
745
790
641
134
262
818
100
912
734
816
377
622
651
553
907
450
871
476
918
755
556
715
340
576
212
101
847
393
715
779
147
938
973
269
210
270
643
445
344
144
325
257
548
446
152
457
251
275
549
823
993
335
215
403
234
809
911
270
137
201
780
422
526
348
804
904
694
498
578
891
549
831
244
787
229
809
506
349
100
500
413
504
152
823
799
978
229
147
982
296
913
245
623
891
237
399
355
895
990
889
854
823
822
172
341
276
600
306
308
157
508
258
934
988
379
354
726
444
391
888
599
517
898
743
630
608
862
595
776
726
760
386
239
149
818
498
483
418
344
271
378
506
313
910
386
102
584
899
705
296
807
937
468
403
166
465
523
912
266
162
551
745
153
126
790
922
860
777
421
653
917
145
386
586
109
638
257
831
297
472
780
305
219
876
440
457
891
994
633
598
526
931
537
603
185
864
866
470
849
875
254
399
895
958
397
449
528
169
221
896
759
169
831
884
195
953
447
279
719
339
740
424
892
621
776
749
395
545
866
225
567
495
944
322
730
330
472
888
979
565
676
819
677
699
464
784
809
355
719
676
565
593
514
186
512
685
361
531
847
145
909
414
678
826
409
666
410
580
695
163
601
255
126
620
439
223
188
942
758
408
451
685
786
873
151
676
170
503
629
228
743
430
516
720
488
769
405
179
427
406
943
876
561
978
359
601
835
135
598
918
348
564
563
881
627
455
753
698
831
419
569
457
521
190
867
777
174
339
139
219
295
349
590
388
472
964
143
877
976
262
839
929
221
263
889
960
662
800
902
946
387
251
224
628
971
328
125
183
155
426
636
526
663
194
232
674
938
837
728
229
443
260
994
800
489
231
792
353
130
801
631
355
719
783
932
243
244
913
834
357
814
425
742
812
373
837
939
774
287
595
981
703
268
764
750
447
804
299
448
399
983
381
535
783
135
251
763
970
939
934
286
409
818
558
423
592
870
509
719
124
697
154
295
416
756
560
818
903
911
260
149
710
542
442
888
832
557
138
605
738
664
728
379
607
341
517
239
950
796
403
776
723
917
533
790
457
448
814
719
566
350
530
810
680
112
128
360
289
351
784
247
446
516
596
812
390
810
185
262
102
596
911
722
824
205
522
235
987
872
152
281
554
303
120
537
955
737
514
542
579
227
687
490
734
288
161
104
335
755
921
871
761
493
658
175
503
719
614
974
160
294
294
838
744
358
799
468
273
836
371
832
376
707
399
793
470
887
898
903
158
742
847
761
509
275
303
684
467
300
899
265
788
339
121
407
871
444
176
576
449
591
805
767
561
919
323
121
779
450
651
218
210
988
109
451
836
159
351
660
868
819
456
647
363
522
699
449
741
365
880
467
441
571
275
487
245
504
582
334
942
770
413
476
482
376
821
135
818
574
822
264
193
420
394
655
760
207
890
494
651
227
887
329
584
282
482
864
739
607
983
309
723
943
812
187
107
543
606
896
282
124
229
766
881
764
443
309
965
724
130
768
291
975
351
664
576
896
286
738
944
208
260
803
479
280
513
765
770
529
404
705
656
461
472
909
605
433
533
131
507
272
576
739
243
545
185
958
947
924
705
954
203
972
965
199
147
608
318
570
954
880
932
295
813
752
597
569
706
631
564
302
285
625
700
597
186
215
546
367
535
667
949
267
216
115
589
219
623
284
240
269
227
571
202
867
413
670
219
710
927
201
524
539
110
321
861
248
376
490
208
239
771
530
297
253
156
878
556
882
330
506
932
276
653
919
569
192
596
736
213
219
549
604
190
218
599
985
698
134
490
569
471
787
328
553
120
875
411
808
887
685
109
387
374
135
875
675
488
205
551
330
929
766
565
245
966
655
682
648
505
887
843
404
217
786
159
649
244
901
201
933
456
181
967
892
689
834
432
347
167
702
243
997
289
469
667
983
422
479
549
558
766
870
224
653
420
224
620
173
589
977
306
232
585
335
987
823
315
126
574
804
135
239
232
530
882
905
714
481
126
330
976
329
178
946
622
135
534
151
139
806
828
942
909
349
367
241
481
967
465
647
437
325
982
741
531
966
559
117
451
677
597
390
181
675
743
827
169
614
670
409
518
338
501
550
479
626
474
582
132
521
769
872
546
347
162
322
719
327
721
Sy9-2
读取sy9-1中生成的test.txt,统计其中个位数为5的数字的个数。
count=0
with open("D:\\test.txt", 'r') as f:
for line in f:
t=int(line)
if (t%10==5):
count=count+1
print(count)
Sy9-3
读取sy9-1中生成的test.txt,分别将第100,200,…,1000个数加1
with open("D:\\test.txt", 'r+') as f:
for i in range(1,11):
f.seek(i*5*100-5)
t=int(f.readline())
print(t)
f.seek(i*5*100-5)
f.write(str(t+1))
五、总结
1. 实验过程中的问题及解决方法:
-
在文件打开模式的选择上,可能一开始不清楚不同模式(如“r”“w”“a”等)的适用场景和区别。通过查阅文档和实践,明确了在写入数据时应使用“w”模式,读取数据时使用“r”模式等,解决了文件打开模式的选择问题。
-
在随机生成整数并写入文件的过程中,可能出现数据写入格式错误,导致文件内容不符合预期。通过调试代码,检查写入文件的循环逻辑和数据转换方式,确保了数据正确写入文件。
-
在读取文件和进行数据处理时,可能遇到文件路径错误导致无法找到文件的问题。通过仔细检查文件路径的拼写和设置,确保了程序能够正确找到并读取指定文件。
2. 实验收获
-
熟悉了文件的打开方法,了解了不同打开模式的用途和使用场景,能够根据实际需求正确选择文件打开模式。
-
掌握了文件的读写操作,学会了如何将数据写入文件以及从文件中读取数据并进行处理和分析。
-
通过对文件的操作实践,提高了编程解决实际问题的能力,能够运用文件操作实现数据的存储、读取和处理等功能。
-
加深了对数据处理和逻辑判断的理解,能够灵活运用循环、条件判断等语句来处理文件中的数据。
-
培养了调试代码和解决问题的能力,在遇到错误时能够通过检查代码、分析错误提示和测试不同方法来解决问题,提高了编程的效率和质量。