Write a function length_correct(fname, length) that takes in a string and an integer, and returns None. fname will be a name of a file stored as a string, and length will be the max length of any line in the file. You may assume for this problem that the filename given is a real file in the same folder as hw08.py. The function should produce a new file "mod-" (where is replaced by the value of fname). This new file should contain the same content of "fname" but modified in the following way: Each line of the file in fname which has a length less than or equal to length should be written unmodified to the new file. If a line has a length of greater than length, that line should be written as two separate lines in the modified file, with length - 1 characters appearing on the first line and ending with a \n character, and the remaining characters on the line below it. ● If the remaining characters also have a length greater than length, you need to split that line as well. ● This process continues until the remaining characters can fit into one line. This means the modified file will have a line count greater than or equal to the original file. For example, with a length of 30 and a file called sorc.txt with the single following line: Mr. and Mrs. Dursley of number four, Privet Drive

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Python

**Title: File Length Correction using Python**

**Objective:**  
Learn how to implement a function `length_correct(fname, length)` in Python that processes text files to conform to specified line length constraints.

**Function Description:**  
The function `length_correct(fname, length)` takes in two parameters:

- `fname`: A string representing the name of the file to be processed. This file must be in the same directory as the script.
- `length`: An integer specifying the maximum allowable length of each line in the file.

**Return Value:**  
The function returns `None`.

**Function Mechanics:**

1. **File Name Handling:**  
   - The function will generate a new file named `mod-<fname>`, replacing `<fname>` with the input file name.

2. **File Processing:**
   - **Unmodified Lines:** Any line in the original file (`fname`) with a length less than or equal to `length` is written as-is to the new file.
   - **Splitting Long Lines:** For lines longer than `length`:
     - Split the line at `length - 1` characters.
     - Insert a newline character `\n` after these characters.
     - Remaining characters are placed on the following line.
     - If these remaining segments are still too long, continue splitting them as per the above logic.
  
3. **Line Count Outcome:**  
   - The resulting file will often have a greater line count compared to the original due to the splitting.

**Example:**  

Suppose `length` is set to 30 and the input file `sorc.txt` contains the line:

```
Mr. and Mrs. Dursley of number four, Privet Drive
```

**Processing Result:**  
The resultant file would ensure that the text lines are broken appropriately, enforcing each segment to be no greater than 30 characters.

This technique is useful in situations where text width must be constrained, such as in reading plain text files on narrow displays or preparing fixed-width files.
Transcribed Image Text:**Title: File Length Correction using Python** **Objective:** Learn how to implement a function `length_correct(fname, length)` in Python that processes text files to conform to specified line length constraints. **Function Description:** The function `length_correct(fname, length)` takes in two parameters: - `fname`: A string representing the name of the file to be processed. This file must be in the same directory as the script. - `length`: An integer specifying the maximum allowable length of each line in the file. **Return Value:** The function returns `None`. **Function Mechanics:** 1. **File Name Handling:** - The function will generate a new file named `mod-<fname>`, replacing `<fname>` with the input file name. 2. **File Processing:** - **Unmodified Lines:** Any line in the original file (`fname`) with a length less than or equal to `length` is written as-is to the new file. - **Splitting Long Lines:** For lines longer than `length`: - Split the line at `length - 1` characters. - Insert a newline character `\n` after these characters. - Remaining characters are placed on the following line. - If these remaining segments are still too long, continue splitting them as per the above logic. 3. **Line Count Outcome:** - The resulting file will often have a greater line count compared to the original due to the splitting. **Example:** Suppose `length` is set to 30 and the input file `sorc.txt` contains the line: ``` Mr. and Mrs. Dursley of number four, Privet Drive ``` **Processing Result:** The resultant file would ensure that the text lines are broken appropriately, enforcing each segment to be no greater than 30 characters. This technique is useful in situations where text width must be constrained, such as in reading plain text files on narrow displays or preparing fixed-width files.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Knowledge Booster
File Input and Output Operations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education